SpotBugs Bug Detector Report

The following document contains the results of SpotBugs

SpotBugs Version is 4.9.1

Threshold is medium

Effort is default

Summary

Classes Bugs Errors Missing Classes
145 171 0 0

Files

Class Bugs
org.opentrafficsim.editor.ApplicationStore 9
org.opentrafficsim.editor.AttributesTableModel 3
org.opentrafficsim.editor.ChildNodeFinder 2
org.opentrafficsim.editor.EvalWrapper 4
org.opentrafficsim.editor.NodeActions 2
org.opentrafficsim.editor.OtsEditor 16
org.opentrafficsim.editor.ScenarioWrapper 2
org.opentrafficsim.editor.Schema 5
org.opentrafficsim.editor.Undo 8
org.opentrafficsim.editor.Undo$Action 1
org.opentrafficsim.editor.XiIncludeNode 2
org.opentrafficsim.editor.XsdOption 4
org.opentrafficsim.editor.XsdTreeNode 29
org.opentrafficsim.editor.XsdTreeNodeRoot 1
org.opentrafficsim.editor.XsdTreeNodeUtil$Occurs 1
org.opentrafficsim.editor.XsdTreeTableModel 1
org.opentrafficsim.editor.decoration.AutomaticLinkId 1
org.opentrafficsim.editor.decoration.DefaultDecorator 2
org.opentrafficsim.editor.decoration.LayoutCustomizer 2
org.opentrafficsim.editor.decoration.validation.KeyValidator 1
org.opentrafficsim.editor.decoration.validation.KeyrefValidator 3
org.opentrafficsim.editor.decoration.validation.ParentValidator 1
org.opentrafficsim.editor.decoration.validation.RoadLayoutElementValidator 2
org.opentrafficsim.editor.decoration.validation.TrafficLightValidator 1
org.opentrafficsim.editor.decoration.validation.ValueValidator 4
org.opentrafficsim.editor.decoration.validation.XPathValidator 2
org.opentrafficsim.editor.extensions.DefinitionsSaver 1
org.opentrafficsim.editor.extensions.OdEditor 2
org.opentrafficsim.editor.extensions.RoadLayoutEditor 2
org.opentrafficsim.editor.extensions.RouteEditor 1
org.opentrafficsim.editor.extensions.TrafCodEditor 1
org.opentrafficsim.editor.extensions.map.ChangeListener 2
org.opentrafficsim.editor.extensions.map.EditorMap 2
org.opentrafficsim.editor.extensions.map.FlattenerListener 1
org.opentrafficsim.editor.extensions.map.MapCrossSectionData 1
org.opentrafficsim.editor.extensions.map.MapData 4
org.opentrafficsim.editor.extensions.map.MapLaneBasedObjectData 1
org.opentrafficsim.editor.extensions.map.MapLinkData 2
org.opentrafficsim.editor.extensions.map.MapLinkData$MiddleOffset 2
org.opentrafficsim.editor.extensions.map.MapLinkData$ShapeListener 2
org.opentrafficsim.editor.extensions.map.MapPriorityData 1
org.opentrafficsim.editor.extensions.map.MapStripeData 9
org.opentrafficsim.editor.extensions.map.RoadLayoutListener$1 1
org.opentrafficsim.editor.extensions.map.SynchronizableMapStripe 3
org.opentrafficsim.editor.listeners.AttributesListSelectionListener 2
org.opentrafficsim.editor.listeners.AttributesMouseListener 2
org.opentrafficsim.editor.listeners.ChangesListener 2
org.opentrafficsim.editor.listeners.PopupValueSelectedListener 2
org.opentrafficsim.editor.listeners.XsdTreeEditorListener 2
org.opentrafficsim.editor.listeners.XsdTreeKeyListener 2
org.opentrafficsim.editor.listeners.XsdTreeListener 4
org.opentrafficsim.editor.render.AttributeCellRenderer 1
org.opentrafficsim.editor.render.AttributesCellEditor 3
org.opentrafficsim.editor.render.StringCellRenderer 1
org.opentrafficsim.editor.render.XsdTreeCellRenderer 3

org.opentrafficsim.editor.ApplicationStore

Bug Category Details Line Priority
Exception thrown in class org.opentrafficsim.editor.ApplicationStore at new org.opentrafficsim.editor.ApplicationStore(String, String) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. BAD_PRACTICE CT_CONSTRUCTOR_THROW 69 Medium
Boxing/unboxing to parse a primitive org.opentrafficsim.editor.ApplicationStore.colorFromString(String) PERFORMANCE DM_BOXED_PRIMITIVE_FOR_PARSING 239 High
Found reliance on default encoding in new org.opentrafficsim.editor.ApplicationStore(String, String): new java.io.FileReader(String) I18N DM_DEFAULT_ENCODING 83 High
Found reliance on default encoding in org.opentrafficsim.editor.ApplicationStore.save(): new java.io.FileWriter(File) I18N DM_DEFAULT_ENCODING 127 High
new org.opentrafficsim.editor.ApplicationStore(String, String) may fail to clean up java.io.Reader EXPERIMENTAL OBL_UNSATISFIED_OBLIGATION 83 Medium
org.opentrafficsim.editor.ApplicationStore.save() may fail to clean up java.io.Writer EXPERIMENTAL OBL_UNSATISFIED_OBLIGATION 127 Medium
new org.opentrafficsim.editor.ApplicationStore(String, String) may fail to close stream BAD_PRACTICE OS_OPEN_STREAM 83 Medium
org.opentrafficsim.editor.ApplicationStore.save() may fail to close stream BAD_PRACTICE OS_OPEN_STREAM 127 Medium
Exceptional return value of java.io.File.mkdirs() ignored in org.opentrafficsim.editor.ApplicationStore.save() BAD_PRACTICE RV_RETURN_VALUE_IGNORED_BAD_PRACTICE 126 Medium

org.opentrafficsim.editor.AttributesTableModel

Bug Category Details Line Priority
org.opentrafficsim.editor.AttributesTableModel.getNode() may expose internal representation by returning AttributesTableModel.node MALICIOUS_CODE EI_EXPOSE_REP 155 Medium
new org.opentrafficsim.editor.AttributesTableModel(XsdTreeNode, JTreeTable) may expose internal representation by storing an externally mutable object into AttributesTableModel.node MALICIOUS_CODE EI_EXPOSE_REP2 64 Medium
new org.opentrafficsim.editor.AttributesTableModel(XsdTreeNode, JTreeTable) may expose internal representation by storing an externally mutable object into AttributesTableModel.treeTable MALICIOUS_CODE EI_EXPOSE_REP2 65 Medium

org.opentrafficsim.editor.ChildNodeFinder

Bug Category Details Line Priority
org.opentrafficsim.editor.ChildNodeFinder.get() may expose internal representation by returning ChildNodeFinder.child MALICIOUS_CODE EI_EXPOSE_REP 65 Medium
new org.opentrafficsim.editor.ChildNodeFinder(XsdTreeNode) may expose internal representation by storing an externally mutable object into ChildNodeFinder.parent MALICIOUS_CODE EI_EXPOSE_REP2 28 Medium

org.opentrafficsim.editor.EvalWrapper

Bug Category Details Line Priority
org.opentrafficsim.editor.EvalWrapper.getEval(ScenarioWrapper) may expose internal representation by returning EvalWrapper.eval MALICIOUS_CODE EI_EXPOSE_REP 114 Medium
org.opentrafficsim.editor.EvalWrapper.getLastValidEval() may expose internal representation by returning EvalWrapper.eval MALICIOUS_CODE EI_EXPOSE_REP 127 Medium
new org.opentrafficsim.editor.EvalWrapper(OtsEditor) may expose internal representation by storing an externally mutable object into EvalWrapper.editor MALICIOUS_CODE EI_EXPOSE_REP2 71 Medium
Exception is caught when Exception is not thrown in org.opentrafficsim.editor.EvalWrapper.wrap(XsdTreeNode) STYLE REC_CATCH_EXCEPTION 307 Medium

org.opentrafficsim.editor.NodeActions

Bug Category Details Line Priority
new org.opentrafficsim.editor.NodeActions(OtsEditor, JTreeTable) may expose internal representation by storing an externally mutable object into NodeActions.editor MALICIOUS_CODE EI_EXPOSE_REP2 38 Medium
new org.opentrafficsim.editor.NodeActions(OtsEditor, JTreeTable) may expose internal representation by storing an externally mutable object into NodeActions.treeTable MALICIOUS_CODE EI_EXPOSE_REP2 39 Medium

org.opentrafficsim.editor.OtsEditor

Bug Category Details Line Priority
Exception thrown in class org.opentrafficsim.editor.OtsEditor at new org.opentrafficsim.editor.OtsEditor() will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. BAD_PRACTICE CT_CONSTRUCTOR_THROW 336 Medium
org.opentrafficsim.editor.OtsEditor.getChoiceNode() may expose internal representation by returning OtsEditor.choiceNode MALICIOUS_CODE EI_EXPOSE_REP 1105 Medium
org.opentrafficsim.editor.OtsEditor.getClipboard() may expose internal representation by returning OtsEditor.clipboard MALICIOUS_CODE EI_EXPOSE_REP 1678 Medium
org.opentrafficsim.editor.OtsEditor.getEventListenerMap() may expose internal representation by returning OtsEditor.listenerMap MALICIOUS_CODE EI_EXPOSE_REP 1138 Medium
org.opentrafficsim.editor.OtsEditor.getNodeActions() may expose internal representation by returning OtsEditor.nodeActions MALICIOUS_CODE EI_EXPOSE_REP 1702 Medium
org.opentrafficsim.editor.OtsEditor.getUndo() may expose internal representation by returning OtsEditor.undo MALICIOUS_CODE EI_EXPOSE_REP 541 Medium
org.opentrafficsim.editor.OtsEditor.setChoiceNode(XsdTreeNode) may expose internal representation by storing an externally mutable object into OtsEditor.choiceNode MALICIOUS_CODE EI_EXPOSE_REP2 1114 Medium
org.opentrafficsim.editor.OtsEditor.setClipboard(XsdTreeNode, boolean) may expose internal representation by storing an externally mutable object into OtsEditor.clipboard MALICIOUS_CODE EI_EXPOSE_REP2 1668 Medium
org.opentrafficsim.editor.OtsEditor.setCoupledNode(XsdTreeNode, XsdTreeNode, String) may expose internal representation by storing an externally mutable object into OtsEditor.candidateBackNode MALICIOUS_CODE EI_EXPOSE_REP2 795 Medium
org.opentrafficsim.editor.OtsEditor.setCoupledNode(XsdTreeNode, XsdTreeNode, String) may expose internal representation by storing an externally mutable object into OtsEditor.coupledNode MALICIOUS_CODE EI_EXPOSE_REP2 794 Medium
org.opentrafficsim.editor.OtsEditor.setSchema(Document) may expose internal representation by storing an externally mutable object into OtsEditor.xsdDocument MALICIOUS_CODE EI_EXPOSE_REP2 826 Medium
org.opentrafficsim.editor.OtsEditor.checkAutosave() may fail to close stream BAD_PRACTICE OS_OPEN_STREAM 852 Medium
Exceptional return value of java.io.File.delete() ignored in org.opentrafficsim.editor.OtsEditor.checkAutosave() BAD_PRACTICE RV_RETURN_VALUE_IGNORED_BAD_PRACTICE 878 Medium
Exceptional return value of java.io.File.mkdir() ignored in org.opentrafficsim.editor.OtsEditor.checkAutosave() BAD_PRACTICE RV_RETURN_VALUE_IGNORED_BAD_PRACTICE 847 Medium
Exceptional return value of java.io.File.delete() ignored in org.opentrafficsim.editor.OtsEditor.runSingle() BAD_PRACTICE RV_RETURN_VALUE_IGNORED_BAD_PRACTICE 502 Medium
org.opentrafficsim.editor.OtsEditor$3 stored into non-transient field OtsEditor.autosave BAD_PRACTICE SE_BAD_FIELD_STORE 967 Medium

org.opentrafficsim.editor.ScenarioWrapper

Bug Category Details Line Priority
org.opentrafficsim.editor.ScenarioWrapper.scenarioNode() may expose internal representation by returning ScenarioWrapper.scenarioNode MALICIOUS_CODE EI_EXPOSE_REP 31 Medium
new org.opentrafficsim.editor.ScenarioWrapper(XsdTreeNode) may expose internal representation by storing an externally mutable object into ScenarioWrapper.scenarioNode MALICIOUS_CODE EI_EXPOSE_REP2 12 Medium

org.opentrafficsim.editor.Schema

Bug Category Details Line Priority
Exception thrown in class org.opentrafficsim.editor.Schema at new org.opentrafficsim.editor.Schema(Document) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. BAD_PRACTICE CT_CONSTRUCTOR_THROW 96 Medium
Call to java.util.Optional<org.w3c.dom.Node>.equals(org.w3c.dom.Node) in org.opentrafficsim.editor.Schema.isType(Node, String) CORRECTNESS EC_UNRELATED_CLASS_AND_INTERFACE 972 High
org.opentrafficsim.editor.Schema.getRoot() may expose internal representation by returning Schema.root MALICIOUS_CODE EI_EXPOSE_REP 869 Medium
org.opentrafficsim.editor.Schema.checkKeyOrUniques(String, Map) makes inefficient use of keySet iterator instead of entrySet iterator PERFORMANCE WMI_WRONG_MAP_ITERATOR 563 Medium
org.opentrafficsim.editor.Schema.checkKeyrefs() makes inefficient use of keySet iterator instead of entrySet iterator PERFORMANCE WMI_WRONG_MAP_ITERATOR 633 Medium

org.opentrafficsim.editor.Undo

Bug Category Details Line Priority
Shared primitive variable "cursor" in one thread may not yield the value of the most recent write from another thread MT_CORRECTNESS AT_STALE_THREAD_WRITE_OF_PRIMITIVE 142 Medium
Shared primitive variable "cursor" in one thread may not yield the value of the most recent write from another thread MT_CORRECTNESS AT_STALE_THREAD_WRITE_OF_PRIMITIVE 79 Medium
Shared primitive variable "ignoreChanges" in one thread may not yield the value of the most recent write from another thread MT_CORRECTNESS AT_STALE_THREAD_WRITE_OF_PRIMITIVE 77 Medium
Shared primitive variable "ignoreChanges" in one thread may not yield the value of the most recent write from another thread MT_CORRECTNESS AT_STALE_THREAD_WRITE_OF_PRIMITIVE 91 Medium
new org.opentrafficsim.editor.Undo(OtsEditor, AbstractButton, AbstractButton) may expose internal representation by storing an externally mutable object into Undo.editor MALICIOUS_CODE EI_EXPOSE_REP2 64 Medium
new org.opentrafficsim.editor.Undo(OtsEditor, AbstractButton, AbstractButton) may expose internal representation by storing an externally mutable object into Undo.redoItem MALICIOUS_CODE EI_EXPOSE_REP2 66 Medium
new org.opentrafficsim.editor.Undo(OtsEditor, AbstractButton, AbstractButton) may expose internal representation by storing an externally mutable object into Undo.undoItem MALICIOUS_CODE EI_EXPOSE_REP2 65 Medium
Inconsistent synchronization of org.opentrafficsim.editor.Undo.ignoreChanges; locked 54% of time MT_CORRECTNESS IS2_INCONSISTENT_SYNC 77 Medium

org.opentrafficsim.editor.Undo$Action

Bug Category Details Line Priority
Should org.opentrafficsim.editor.Undo$Action be a _static_ inner class? PERFORMANCE SIC_INNER_SHOULD_BE_STATIC 486-493 Medium

org.opentrafficsim.editor.XiIncludeNode

Bug Category Details Line Priority
org.opentrafficsim.editor.XiIncludeNode.getFirstChild() may expose internal representation by returning XiIncludeNode.FILE_CHILD MALICIOUS_CODE EI_EXPOSE_REP 98 Medium
org.opentrafficsim.editor.XiIncludeNode.getLastChild() may expose internal representation by returning XiIncludeNode.FALLBACK_CHILD MALICIOUS_CODE EI_EXPOSE_REP 104 Medium

org.opentrafficsim.editor.XsdOption

Bug Category Details Line Priority
org.opentrafficsim.editor.XsdOption.choice() may expose internal representation by returning XsdOption.choice MALICIOUS_CODE EI_EXPOSE_REP 14 Medium
org.opentrafficsim.editor.XsdOption.optionNode() may expose internal representation by returning XsdOption.optionNode MALICIOUS_CODE EI_EXPOSE_REP 14 Medium
new org.opentrafficsim.editor.XsdOption(XsdTreeNode, XsdTreeNode, boolean) may expose internal representation by storing an externally mutable object into XsdOption.choice MALICIOUS_CODE EI_EXPOSE_REP2 14 Medium
new org.opentrafficsim.editor.XsdOption(XsdTreeNode, XsdTreeNode, boolean) may expose internal representation by storing an externally mutable object into XsdOption.optionNode MALICIOUS_CODE EI_EXPOSE_REP2 14 Medium

org.opentrafficsim.editor.XsdTreeNode

Bug Category Details Line Priority
Operation on the "active" shared variable in "XsdTreeNode" class is not atomic MT_CORRECTNESS AT_NONATOMIC_OPERATIONS_ON_SHARED_VARIABLE 1383 Medium
Operation on the "isIncluded" shared variable in "XsdTreeNode" class is not atomic MT_CORRECTNESS AT_NONATOMIC_OPERATIONS_ON_SHARED_VARIABLE 1352 Medium
Operation on the "maxOccurs" shared variable in "XsdTreeNode" class is not atomic MT_CORRECTNESS AT_NONATOMIC_OPERATIONS_ON_SHARED_VARIABLE 1378 Medium
Operation on the "minOccurs" shared variable in "XsdTreeNode" class is not atomic MT_CORRECTNESS AT_NONATOMIC_OPERATIONS_ON_SHARED_VARIABLE 1377 Medium
Operation on the "maxOccurs" shared variable in "XsdTreeNode" class is not atomic MT_CORRECTNESS AT_NONATOMIC_OPERATIONS_ON_SHARED_VARIABLE 527 Medium
Operation on the "minOccurs" shared variable in "XsdTreeNode" class is not atomic MT_CORRECTNESS AT_NONATOMIC_OPERATIONS_ON_SHARED_VARIABLE 526 Medium
Operation on the "active" shared variable in "XsdTreeNode" class is not atomic MT_CORRECTNESS AT_NONATOMIC_OPERATIONS_ON_SHARED_VARIABLE 1287 Medium
Operation on the "maxOccurs" shared variable in "XsdTreeNode" class is not atomic MT_CORRECTNESS AT_NONATOMIC_OPERATIONS_ON_SHARED_VARIABLE 368 Medium
Shared primitive variable "active" in one thread may not yield the value of the most recent write from another thread MT_CORRECTNESS AT_STALE_THREAD_WRITE_OF_PRIMITIVE 1262 Medium
Shared primitive variable "isIncluded" in one thread may not yield the value of the most recent write from another thread MT_CORRECTNESS AT_STALE_THREAD_WRITE_OF_PRIMITIVE 736 Medium
Shared primitive variable "active" in one thread may not yield the value of the most recent write from another thread MT_CORRECTNESS AT_STALE_THREAD_WRITE_OF_PRIMITIVE 530 Medium
Shared primitive variable "active" in one thread may not yield the value of the most recent write from another thread MT_CORRECTNESS AT_STALE_THREAD_WRITE_OF_PRIMITIVE 1785 Medium
Shared primitive variable "idIndex" in one thread may not yield the value of the most recent write from another thread MT_CORRECTNESS AT_STALE_THREAD_WRITE_OF_PRIMITIVE 1141 Medium
Shared primitive variable "active" in one thread may not yield the value of the most recent write from another thread MT_CORRECTNESS AT_STALE_THREAD_WRITE_OF_PRIMITIVE 2709 Medium
Shared primitive variable "active" in one thread may not yield the value of the most recent write from another thread MT_CORRECTNESS AT_STALE_THREAD_WRITE_OF_PRIMITIVE 1062 Medium
Shared primitive variable "active" in one thread may not yield the value of the most recent write from another thread MT_CORRECTNESS AT_STALE_THREAD_WRITE_OF_PRIMITIVE 1108 Medium
Shared primitive variable "deactivated" in one thread may not yield the value of the most recent write from another thread MT_CORRECTNESS AT_STALE_THREAD_WRITE_OF_PRIMITIVE 1107 Medium
Shared primitive variable "maxOccurs" in one thread may not yield the value of the most recent write from another thread MT_CORRECTNESS AT_STALE_THREAD_WRITE_OF_PRIMITIVE 353 Medium
Shared primitive variable "minOccurs" in one thread may not yield the value of the most recent write from another thread MT_CORRECTNESS AT_STALE_THREAD_WRITE_OF_PRIMITIVE 352 Medium
Exception thrown in class org.opentrafficsim.editor.XsdTreeNode at new org.opentrafficsim.editor.XsdTreeNode(Schema) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. BAD_PRACTICE CT_CONSTRUCTOR_THROW 257 Medium
Exception thrown in class org.opentrafficsim.editor.XsdTreeNode at new org.opentrafficsim.editor.XsdTreeNode(XsdTreeNode, Node, ImmutableList) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. BAD_PRACTICE CT_CONSTRUCTOR_THROW 277 Medium
Exception thrown in class org.opentrafficsim.editor.XsdTreeNode at new org.opentrafficsim.editor.XsdTreeNode(XsdTreeNode, Node, ImmutableList, Node) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. BAD_PRACTICE CT_CONSTRUCTOR_THROW 320 Medium
Call to java.util.Optional<java.lang.String>.equals(String) in org.opentrafficsim.editor.XsdTreeNode.setAttributeValue(int, String) CORRECTNESS EC_UNRELATED_TYPES 916 High
org.opentrafficsim.editor.XsdTreeNode.getOption() may expose internal representation by returning XsdTreeNode.selected MALICIOUS_CODE EI_EXPOSE_REP 511 Medium
org.opentrafficsim.editor.XsdTreeNode.getParent() may expose internal representation by returning XsdTreeNode.parent MALICIOUS_CODE EI_EXPOSE_REP 777 Medium
Inconsistent synchronization of org.opentrafficsim.editor.XsdTreeNode.description; locked 42% of time MT_CORRECTNESS IS2_INCONSISTENT_SYNC 1750 Medium
Return value of add() ignored, is this OK in org.opentrafficsim.editor.XsdTreeNode.assureChildren() STYLE RV_RETURN_VALUE_IGNORED_INFERRED 765 Medium
Return value of add() ignored, is this OK in org.opentrafficsim.editor.XsdTreeNode.loadChildren(XsdTreeNodeUtil$LoadingIndices, NodeList, boolean) STYLE RV_RETURN_VALUE_IGNORED_INFERRED 2582 Medium
org.opentrafficsim.editor.XsdTreeNode.loadXmlNodes(Node) concatenates strings using + in a loop PERFORMANCE SBSC_USE_STRINGBUFFER_CONCATENATION 2434 Medium

org.opentrafficsim.editor.XsdTreeNodeRoot

Bug Category Details Line Priority
Exception thrown in class org.opentrafficsim.editor.XsdTreeNodeRoot at new org.opentrafficsim.editor.XsdTreeNodeRoot(Schema) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. BAD_PRACTICE CT_CONSTRUCTOR_THROW 70 Medium

org.opentrafficsim.editor.XsdTreeNodeUtil$Occurs

Bug Category Details Line Priority
Boxing/unboxing to parse a primitive org.opentrafficsim.editor.XsdTreeNodeUtil$Occurs.get(Node) PERFORMANCE DM_BOXED_PRIMITIVE_FOR_PARSING 500 High

org.opentrafficsim.editor.XsdTreeTableModel

Bug Category Details Line Priority
org.opentrafficsim.editor.XsdTreeTableModel.setTreeTable(JTreeTable) may expose internal representation by storing an externally mutable object into XsdTreeTableModel.treeTable MALICIOUS_CODE EI_EXPOSE_REP2 66 Medium

org.opentrafficsim.editor.decoration.AutomaticLinkId

Bug Category Details Line Priority
org.opentrafficsim.editor.decoration.AutomaticLinkId.notifyAttributeChanged(XsdTreeNode, String) may expose internal representation by storing an externally mutable object into AutomaticLinkId.lastNode MALICIOUS_CODE EI_EXPOSE_REP2 66 Medium

org.opentrafficsim.editor.decoration.DefaultDecorator

Bug Category Details Line Priority
Useless condition: it's known that bgHeight > 0 at this point STYLE UC_USELESS_CONDITION 213 High
Useless condition: it's known that bgWidth > 0 at this point STYLE UC_USELESS_CONDITION 212 High

org.opentrafficsim.editor.decoration.LayoutCustomizer

Bug Category Details Line Priority
new org.opentrafficsim.editor.decoration.LayoutCustomizer(OtsEditor) may expose internal representation by storing an externally mutable object into LayoutCustomizer.editor MALICIOUS_CODE EI_EXPOSE_REP2 37 Medium
Possible null pointer dereference of custom in org.opentrafficsim.editor.decoration.LayoutCustomizer.accept(XsdTreeNode) CORRECTNESS NP_NULL_ON_SOME_PATH 75 Medium

org.opentrafficsim.editor.decoration.validation.KeyValidator

Bug Category Details Line Priority
Exception thrown in class org.opentrafficsim.editor.decoration.validation.KeyValidator at new org.opentrafficsim.editor.decoration.validation.KeyValidator(Node, String) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. BAD_PRACTICE CT_CONSTRUCTOR_THROW 57 Medium

org.opentrafficsim.editor.decoration.validation.KeyrefValidator

Bug Category Details Line Priority
Exception thrown in class org.opentrafficsim.editor.decoration.validation.KeyrefValidator at new org.opentrafficsim.editor.decoration.validation.KeyrefValidator(Node, String, KeyValidator) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. BAD_PRACTICE CT_CONSTRUCTOR_THROW 51 Medium
org.opentrafficsim.editor.decoration.validation.KeyrefValidator.getCouplings() may expose internal representation by returning KeyrefValidator.coupledNodes MALICIOUS_CODE EI_EXPOSE_REP 228 Medium
new org.opentrafficsim.editor.decoration.validation.KeyrefValidator(Node, String, KeyValidator) may expose internal representation by storing an externally mutable object into KeyrefValidator.refer MALICIOUS_CODE EI_EXPOSE_REP2 58 Medium

org.opentrafficsim.editor.decoration.validation.ParentValidator

Bug Category Details Line Priority
Nullcheck of parent at line 164 of value previously dereferenced in org.opentrafficsim.editor.decoration.validation.ParentValidator.getContext(XsdTreeNode) CORRECTNESS RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE 164 Medium

org.opentrafficsim.editor.decoration.validation.RoadLayoutElementValidator

Bug Category Details Line Priority
Exception thrown in class org.opentrafficsim.editor.decoration.validation.RoadLayoutElementValidator at new org.opentrafficsim.editor.decoration.validation.RoadLayoutElementValidator(OtsEditor, String, RoadLayoutElementValidator$LayoutCoupling, RoadLayoutElementValidator$RoadLayoutElementAttribute) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. BAD_PRACTICE CT_CONSTRUCTOR_THROW 107 Medium
org.opentrafficsim.editor.decoration.validation.RoadLayoutElementValidator.getCouplings() may expose internal representation by returning RoadLayoutElementValidator.coupledNodes MALICIOUS_CODE EI_EXPOSE_REP 494 Medium

org.opentrafficsim.editor.decoration.validation.TrafficLightValidator

Bug Category Details Line Priority
org.opentrafficsim.editor.decoration.validation.TrafficLightValidator.getCouplings() may expose internal representation by returning TrafficLightValidator.coupledNodes MALICIOUS_CODE EI_EXPOSE_REP 179 Medium

org.opentrafficsim.editor.decoration.validation.ValueValidator

Bug Category Details Line Priority
Boxing/unboxing to parse a primitive org.opentrafficsim.editor.decoration.validation.ValueValidator.reportNativeTypeNonCompliance(String, String) PERFORMANCE DM_BOXED_PRIMITIVE_FOR_PARSING 359 High
Boxing/unboxing to parse a primitive org.opentrafficsim.editor.decoration.validation.ValueValidator.reportRestrictionNonCompliance(Node, Node, String) PERFORMANCE DM_BOXED_PRIMITIVE_FOR_PARSING 461 High
org.opentrafficsim.editor.decoration.validation.ValueValidator.SUPPRESS_ERRORS should be moved out of an interface and made package protected MALICIOUS_CODE MS_OOI_PKGPROTECT 34 Medium
org.opentrafficsim.editor.decoration.validation.ValueValidator.reportInvalidValue(Node, String, Schema) has Optional return type and returns explicit null CORRECTNESS NP_OPTIONAL_RETURN_NULL 109 High

org.opentrafficsim.editor.decoration.validation.XPathValidator

Bug Category Details Line Priority
Exception thrown in class org.opentrafficsim.editor.decoration.validation.XPathValidator at new org.opentrafficsim.editor.decoration.validation.XPathValidator(Node, String) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. BAD_PRACTICE CT_CONSTRUCTOR_THROW 44 Medium
new org.opentrafficsim.editor.decoration.validation.XPathValidator(Node, String) may expose internal representation by storing an externally mutable object into XPathValidator.keyNode MALICIOUS_CODE EI_EXPOSE_REP2 46 Medium

org.opentrafficsim.editor.extensions.DefinitionsSaver

Bug Category Details Line Priority
new org.opentrafficsim.editor.extensions.DefinitionsSaver(OtsEditor) may expose internal representation by storing an externally mutable object into DefinitionsSaver.editor MALICIOUS_CODE EI_EXPOSE_REP2 35 Medium

org.opentrafficsim.editor.extensions.OdEditor

Bug Category Details Line Priority
Exception thrown in class org.opentrafficsim.editor.extensions.OdEditor at new org.opentrafficsim.editor.extensions.OdEditor(OtsEditor) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. BAD_PRACTICE CT_CONSTRUCTOR_THROW 36 Medium
new org.opentrafficsim.editor.extensions.OdEditor(OtsEditor) may expose internal representation by storing an externally mutable object into OdEditor.editor MALICIOUS_CODE EI_EXPOSE_REP2 39 Medium

org.opentrafficsim.editor.extensions.RoadLayoutEditor

Bug Category Details Line Priority
Exception thrown in class org.opentrafficsim.editor.extensions.RoadLayoutEditor at new org.opentrafficsim.editor.extensions.RoadLayoutEditor(OtsEditor) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. BAD_PRACTICE CT_CONSTRUCTOR_THROW 40 Medium
new org.opentrafficsim.editor.extensions.RoadLayoutEditor(OtsEditor) may expose internal representation by storing an externally mutable object into RoadLayoutEditor.editor MALICIOUS_CODE EI_EXPOSE_REP2 43 Medium

org.opentrafficsim.editor.extensions.RouteEditor

Bug Category Details Line Priority
new org.opentrafficsim.editor.extensions.RouteEditor(OtsEditor) may expose internal representation by storing an externally mutable object into RouteEditor.editor MALICIOUS_CODE EI_EXPOSE_REP2 38 Medium

org.opentrafficsim.editor.extensions.TrafCodEditor

Bug Category Details Line Priority
new org.opentrafficsim.editor.extensions.TrafCodEditor(OtsEditor) may expose internal representation by storing an externally mutable object into TrafCodEditor.editor MALICIOUS_CODE EI_EXPOSE_REP2 36 Medium

org.opentrafficsim.editor.extensions.map.ChangeListener

Bug Category Details Line Priority
org.opentrafficsim.editor.extensions.map.ChangeListener.getNode() may expose internal representation by returning ChangeListener.node MALICIOUS_CODE EI_EXPOSE_REP 180 Medium
new org.opentrafficsim.editor.extensions.map.ChangeListener(XsdTreeNode, Supplier) may expose internal representation by storing an externally mutable object into ChangeListener.node MALICIOUS_CODE EI_EXPOSE_REP2 62 Medium

org.opentrafficsim.editor.extensions.map.EditorMap

Bug Category Details Line Priority
org.opentrafficsim.editor.extensions.map.EditorMap.getSynchronizableStripes() may expose internal representation by returning EditorMap.synStripes MALICIOUS_CODE EI_EXPOSE_REP 1051 Medium
Possible null pointer dereference of EditorMap.networkFlattenerListener in org.opentrafficsim.editor.extensions.map.EditorMap.removeNetworkFlattener() CORRECTNESS NP_NULL_ON_SOME_PATH 987 Medium

org.opentrafficsim.editor.extensions.map.FlattenerListener

Bug Category Details Line Priority
Boxing/unboxing to parse a primitive org.opentrafficsim.editor.extensions.map.FlattenerListener.calculateData() PERFORMANCE DM_BOXED_PRIMITIVE_FOR_PARSING 45 High

org.opentrafficsim.editor.extensions.map.MapCrossSectionData

Bug Category Details Line Priority
new org.opentrafficsim.editor.extensions.map.MapCrossSectionData(XsdTreeNode, CrossSectionGeometry) may expose internal representation by storing an externally mutable object into MapCrossSectionData.linkNode MALICIOUS_CODE EI_EXPOSE_REP2 35 Medium

org.opentrafficsim.editor.extensions.map.MapData

Bug Category Details Line Priority
org.opentrafficsim.editor.extensions.map.MapData.getNode() may expose internal representation by returning MapData.node MALICIOUS_CODE EI_EXPOSE_REP 52 Medium
new org.opentrafficsim.editor.extensions.map.MapData(EditorMap, XsdTreeNode, OtsEditor) may expose internal representation by storing an externally mutable object into MapData.editor MALICIOUS_CODE EI_EXPOSE_REP2 42 Medium
new org.opentrafficsim.editor.extensions.map.MapData(EditorMap, XsdTreeNode, OtsEditor) may expose internal representation by storing an externally mutable object into MapData.map MALICIOUS_CODE EI_EXPOSE_REP2 40 Medium
new org.opentrafficsim.editor.extensions.map.MapData(EditorMap, XsdTreeNode, OtsEditor) may expose internal representation by storing an externally mutable object into MapData.node MALICIOUS_CODE EI_EXPOSE_REP2 41 Medium

org.opentrafficsim.editor.extensions.map.MapLaneBasedObjectData

Bug Category Details Line Priority
org.opentrafficsim.editor.extensions.map.MapLaneBasedObjectData.getLaneWidth() may expose internal representation by returning MapLaneBasedObjectData.laneWidth MALICIOUS_CODE EI_EXPOSE_REP 131 Medium

org.opentrafficsim.editor.extensions.map.MapLinkData

Bug Category Details Line Priority
org.opentrafficsim.editor.extensions.map.MapLinkData.getEventListenerMap() may expose internal representation by returning MapLinkData.eventListenerMap MALICIOUS_CODE EI_EXPOSE_REP 837 Medium
Useless object stored in variable laneOverrides of method org.opentrafficsim.editor.extensions.map.MapLinkData.buildLayout() STYLE UC_USELESS_OBJECT 609 Medium

org.opentrafficsim.editor.extensions.map.MapLinkData$MiddleOffset

Bug Category Details Line Priority
new org.opentrafficsim.editor.extensions.map.MapLinkData$MiddleOffset(MapLinkData) may expose internal representation by storing an externally mutable object into MapLinkData$MiddleOffset.this$0 MALICIOUS_CODE EI_EXPOSE_REP2 917 Medium
Should org.opentrafficsim.editor.extensions.map.MapLinkData$MiddleOffset be a _static_ inner class? PERFORMANCE SIC_INNER_SHOULD_BE_STATIC 902-957 Medium

org.opentrafficsim.editor.extensions.map.MapLinkData$ShapeListener

Bug Category Details Line Priority
Exception is caught when Exception is not thrown in org.opentrafficsim.editor.extensions.map.MapLinkData$ShapeListener.notify(Event) STYLE REC_CATCH_EXCEPTION 1095 Medium
Switch statement found in org.opentrafficsim.editor.extensions.map.MapLinkData$ShapeListener.notify(Event) where default case is missing STYLE SF_SWITCH_NO_DEFAULT 1076-1091 Medium

org.opentrafficsim.editor.extensions.map.MapPriorityData

Bug Category Details Line Priority
new org.opentrafficsim.editor.extensions.map.MapPriorityData(MapLinkData) may expose internal representation by storing an externally mutable object into MapPriorityData.linkData MALICIOUS_CODE EI_EXPOSE_REP2 42 Medium

org.opentrafficsim.editor.extensions.map.MapStripeData

Bug Category Details Line Priority
org.opentrafficsim.editor.extensions.map.MapStripeData.getDashOffset() may expose internal representation by returning MapStripeData.dashOffset MALICIOUS_CODE EI_EXPOSE_REP 145 Medium
org.opentrafficsim.editor.extensions.map.MapStripeData.getElements() may expose internal representation by returning MapStripeData.elements MALICIOUS_CODE EI_EXPOSE_REP 139 Medium
org.opentrafficsim.editor.extensions.map.MapStripeData.getWidth(Length) may expose internal representation by returning MapStripeData.width MALICIOUS_CODE EI_EXPOSE_REP 103 Medium
new org.opentrafficsim.editor.extensions.map.MapStripeData(Length, XsdTreeNode, CrossSectionGeometry, List, StripeElement$StripeLateralSync, PolyLine2d, MapLinkData$MiddleOffset, Direction, Direction) may expose internal representation by storing an externally mutable object into MapStripeData.dashOffset MALICIOUS_CODE EI_EXPOSE_REP2 84 Medium
new org.opentrafficsim.editor.extensions.map.MapStripeData(Length, XsdTreeNode, CrossSectionGeometry, List, StripeElement$StripeLateralSync, PolyLine2d, MapLinkData$MiddleOffset, Direction, Direction) may expose internal representation by storing an externally mutable object into MapStripeData.elements MALICIOUS_CODE EI_EXPOSE_REP2 86 Medium
new org.opentrafficsim.editor.extensions.map.MapStripeData(Length, XsdTreeNode, CrossSectionGeometry, List, StripeElement$StripeLateralSync, PolyLine2d, MapLinkData$MiddleOffset, Direction, Direction) may expose internal representation by storing an externally mutable object into MapStripeData.endDirection MALICIOUS_CODE EI_EXPOSE_REP2 91 Medium
new org.opentrafficsim.editor.extensions.map.MapStripeData(Length, XsdTreeNode, CrossSectionGeometry, List, StripeElement$StripeLateralSync, PolyLine2d, MapLinkData$MiddleOffset, Direction, Direction) may expose internal representation by storing an externally mutable object into MapStripeData.middleOffset MALICIOUS_CODE EI_EXPOSE_REP2 89 Medium
new org.opentrafficsim.editor.extensions.map.MapStripeData(Length, XsdTreeNode, CrossSectionGeometry, List, StripeElement$StripeLateralSync, PolyLine2d, MapLinkData$MiddleOffset, Direction, Direction) may expose internal representation by storing an externally mutable object into MapStripeData.startDirection MALICIOUS_CODE EI_EXPOSE_REP2 90 Medium
org.opentrafficsim.editor.extensions.map.MapStripeData.setDashOffset(Length) may expose internal representation by storing an externally mutable object into MapStripeData.dashOffset MALICIOUS_CODE EI_EXPOSE_REP2 163 Medium

org.opentrafficsim.editor.extensions.map.RoadLayoutListener$1

Bug Category Details Line Priority
Exception is caught when Exception is not thrown in org.opentrafficsim.editor.extensions.map.RoadLayoutListener$1.hasNext() STYLE REC_CATCH_EXCEPTION 214 Medium

org.opentrafficsim.editor.extensions.map.SynchronizableMapStripe

Bug Category Details Line Priority
org.opentrafficsim.editor.extensions.map.SynchronizableMapStripe.getObject() may expose internal representation by returning SynchronizableMapStripe.data MALICIOUS_CODE EI_EXPOSE_REP 82 Medium
new org.opentrafficsim.editor.extensions.map.SynchronizableMapStripe(MapLinkData, MapStripeData, StripeData$StripePhaseSync) may expose internal representation by storing an externally mutable object into SynchronizableMapStripe.data MALICIOUS_CODE EI_EXPOSE_REP2 45 Medium
new org.opentrafficsim.editor.extensions.map.SynchronizableMapStripe(MapLinkData, MapStripeData, StripeData$StripePhaseSync) may expose internal representation by storing an externally mutable object into SynchronizableMapStripe.linkData MALICIOUS_CODE EI_EXPOSE_REP2 44 Medium

org.opentrafficsim.editor.listeners.AttributesListSelectionListener

Bug Category Details Line Priority
new org.opentrafficsim.editor.listeners.AttributesListSelectionListener(OtsEditor, JTable) may expose internal representation by storing an externally mutable object into AttributesListSelectionListener.attributesTable MALICIOUS_CODE EI_EXPOSE_REP2 48 Medium
new org.opentrafficsim.editor.listeners.AttributesListSelectionListener(OtsEditor, JTable) may expose internal representation by storing an externally mutable object into AttributesListSelectionListener.editor MALICIOUS_CODE EI_EXPOSE_REP2 47 Medium

org.opentrafficsim.editor.listeners.AttributesMouseListener

Bug Category Details Line Priority
new org.opentrafficsim.editor.listeners.AttributesMouseListener(OtsEditor, JTable) may expose internal representation by storing an externally mutable object into AttributesMouseListener.attributesTable MALICIOUS_CODE EI_EXPOSE_REP2 47 Medium
new org.opentrafficsim.editor.listeners.AttributesMouseListener(OtsEditor, JTable) may expose internal representation by storing an externally mutable object into AttributesMouseListener.editor MALICIOUS_CODE EI_EXPOSE_REP2 46 Medium

org.opentrafficsim.editor.listeners.ChangesListener

Bug Category Details Line Priority
new org.opentrafficsim.editor.listeners.ChangesListener(OtsEditor, JComboBox) may expose internal representation by storing an externally mutable object into ChangesListener.editor MALICIOUS_CODE EI_EXPOSE_REP2 44 Medium
new org.opentrafficsim.editor.listeners.ChangesListener(OtsEditor, JComboBox) may expose internal representation by storing an externally mutable object into ChangesListener.scenario MALICIOUS_CODE EI_EXPOSE_REP2 45 Medium

org.opentrafficsim.editor.listeners.PopupValueSelectedListener

Bug Category Details Line Priority
new org.opentrafficsim.editor.listeners.PopupValueSelectedListener(String, JTable, Consumer, JTreeTable) may expose internal representation by storing an externally mutable object into PopupValueSelectedListener.table MALICIOUS_CODE EI_EXPOSE_REP2 49 Medium
new org.opentrafficsim.editor.listeners.PopupValueSelectedListener(String, JTable, Consumer, JTreeTable) may expose internal representation by storing an externally mutable object into PopupValueSelectedListener.treeTable MALICIOUS_CODE EI_EXPOSE_REP2 51 Medium

org.opentrafficsim.editor.listeners.XsdTreeEditorListener

Bug Category Details Line Priority
new org.opentrafficsim.editor.listeners.XsdTreeEditorListener(OtsEditor, JTreeTable) may expose internal representation by storing an externally mutable object into XsdTreeEditorListener.editor MALICIOUS_CODE EI_EXPOSE_REP2 48 Medium
new org.opentrafficsim.editor.listeners.XsdTreeEditorListener(OtsEditor, JTreeTable) may expose internal representation by storing an externally mutable object into XsdTreeEditorListener.treeTable MALICIOUS_CODE EI_EXPOSE_REP2 49 Medium

org.opentrafficsim.editor.listeners.XsdTreeKeyListener

Bug Category Details Line Priority
new org.opentrafficsim.editor.listeners.XsdTreeKeyListener(OtsEditor, JTreeTable) may expose internal representation by storing an externally mutable object into XsdTreeKeyListener.editor MALICIOUS_CODE EI_EXPOSE_REP2 45 Medium
new org.opentrafficsim.editor.listeners.XsdTreeKeyListener(OtsEditor, JTreeTable) may expose internal representation by storing an externally mutable object into XsdTreeKeyListener.treeTable MALICIOUS_CODE EI_EXPOSE_REP2 46 Medium

org.opentrafficsim.editor.listeners.XsdTreeListener

Bug Category Details Line Priority
Dead store to sepNeeded in org.opentrafficsim.editor.listeners.XsdTreeListener.addMoveNodeGroup(XsdTreeNode, JPopupMenu, boolean) STYLE DLS_DEAD_LOCAL_STORE 628 Medium
new org.opentrafficsim.editor.listeners.XsdTreeListener(OtsEditor, JTreeTable, JTable) may expose internal representation by storing an externally mutable object into XsdTreeListener.attributesTable MALICIOUS_CODE EI_EXPOSE_REP2 85 Medium
new org.opentrafficsim.editor.listeners.XsdTreeListener(OtsEditor, JTreeTable, JTable) may expose internal representation by storing an externally mutable object into XsdTreeListener.editor MALICIOUS_CODE EI_EXPOSE_REP2 83 Medium
new org.opentrafficsim.editor.listeners.XsdTreeListener(OtsEditor, JTreeTable, JTable) may expose internal representation by storing an externally mutable object into XsdTreeListener.treeTable MALICIOUS_CODE EI_EXPOSE_REP2 84 Medium

org.opentrafficsim.editor.render.AttributeCellRenderer

Bug Category Details Line Priority
org.opentrafficsim.editor.render.AttributeCellRenderer.getTableCellRendererComponent(JTable, Object, boolean, boolean, int, int) may expose internal representation by returning AttributeCellRenderer.checkBox MALICIOUS_CODE EI_EXPOSE_REP 129 Medium

org.opentrafficsim.editor.render.AttributesCellEditor

Bug Category Details Line Priority
org.opentrafficsim.editor.render.AttributesCellEditor.getTableCellEditorComponent(JTable, Object, boolean, int, int) may expose internal representation by returning AttributesCellEditor.checkBox MALICIOUS_CODE EI_EXPOSE_REP 138 Medium
new org.opentrafficsim.editor.render.AttributesCellEditor(JTable, OtsEditor) may expose internal representation by storing an externally mutable object into AttributesCellEditor.editor MALICIOUS_CODE EI_EXPOSE_REP2 77 Medium
org.opentrafficsim.editor.render.AttributesCellEditor$2 stored into non-transient field AttributesCellEditor.lastActionListener BAD_PRACTICE SE_BAD_FIELD_STORE 124 Medium

org.opentrafficsim.editor.render.StringCellRenderer

Bug Category Details Line Priority
new org.opentrafficsim.editor.render.StringCellRenderer(JTreeTable) may expose internal representation by storing an externally mutable object into StringCellRenderer.treeTable MALICIOUS_CODE EI_EXPOSE_REP2 42 Medium

org.opentrafficsim.editor.render.XsdTreeCellRenderer

Bug Category Details Line Priority
Exception thrown in class org.opentrafficsim.editor.render.XsdTreeCellRenderer at new org.opentrafficsim.editor.render.XsdTreeCellRenderer(OtsEditor) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. BAD_PRACTICE CT_CONSTRUCTOR_THROW 61 Medium
new org.opentrafficsim.editor.render.XsdTreeCellRenderer(OtsEditor) may expose internal representation by storing an externally mutable object into XsdTreeCellRenderer.editor MALICIOUS_CODE EI_EXPOSE_REP2 60 Medium
java.awt.image.BufferedImage stored into non-transient field XsdTreeCellRenderer.dropdown BAD_PRACTICE SE_BAD_FIELD_STORE 65 Medium