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 |
32 |
28 |
0 |
0 |
nl.tudelft.simulation.dsol.animation.StaticLocation2d
Bug |
Category |
Details |
Line |
Priority |
nl.tudelft.simulation.dsol.animation.StaticLocation2d doesn't override org.djutils.draw.point.DirectedPoint2d.equals(Object) |
STYLE |
EQ_DOESNT_OVERRIDE_EQUALS |
1 |
Medium |
nl.tudelft.simulation.dsol.animation.StaticLocation3d
Bug |
Category |
Details |
Line |
Priority |
nl.tudelft.simulation.dsol.animation.StaticLocation3d doesn't override org.djutils.draw.point.OrientedPoint3d.equals(Object) |
STYLE |
EQ_DOESNT_OVERRIDE_EQUALS |
1 |
Medium |
nl.tudelft.simulation.dsol.animation.d2.ImageRenderable
Bug |
Category |
Details |
Line |
Priority |
Shared primitive variable "orientation" in one thread may not yield the value of the most recent write from another thread |
MT_CORRECTNESS |
AT_STALE_THREAD_WRITE_OF_PRIMITIVE |
191 |
Medium |
nl.tudelft.simulation.dsol.animation.d2.ImageRenderable.cache is or uses a map or set of URLs, which can be a performance hog |
PERFORMANCE |
DMI_COLLECTION_OF_URLS |
Not available |
High |
nl.tudelft.simulation.dsol.animation.d2.ImageRenderable.readImages(URL[]) is or uses a map or set of URLs, which can be a performance hog |
PERFORMANCE |
DMI_COLLECTION_OF_URLS |
110 |
High |
nl.tudelft.simulation.dsol.animation.d2.ImageRenderable.getImages() may expose internal representation by returning ImageRenderable.imageIcons |
MALICIOUS_CODE |
EI_EXPOSE_REP |
199 |
Medium |
nl.tudelft.simulation.dsol.animation.d2.ImageRenderable's readObject method is synchronized |
MT_CORRECTNESS |
RS_READOBJECT_SYNC |
275-281 |
Medium |
Static field "cache" is modified by an instance level synchronized method. |
MT_CORRECTNESS |
SSD_DO_NOT_USE_INSTANCE_LOCK_ON_SHARED_STATIC_DATA |
278 |
Medium |
nl.tudelft.simulation.dsol.animation.d2.Renderable2d
Bug |
Category |
Details |
Line |
Priority |
Shared primitive variable "id" in one thread may not yield the value of the most recent write from another thread |
MT_CORRECTNESS |
AT_STALE_THREAD_WRITE_OF_PRIMITIVE |
101 |
Medium |
Shared primitive variable "flags" in one thread may not yield the value of the most recent write from another thread |
MT_CORRECTNESS |
AT_STALE_THREAD_WRITE_OF_PRIMITIVE |
128 |
Medium |
Shared primitive variable "flags" in one thread may not yield the value of the most recent write from another thread |
MT_CORRECTNESS |
AT_STALE_THREAD_WRITE_OF_PRIMITIVE |
150 |
Medium |
Shared primitive variable "flags" in one thread may not yield the value of the most recent write from another thread |
MT_CORRECTNESS |
AT_STALE_THREAD_WRITE_OF_PRIMITIVE |
172 |
Medium |
Shared primitive variable "flags" in one thread may not yield the value of the most recent write from another thread |
MT_CORRECTNESS |
AT_STALE_THREAD_WRITE_OF_PRIMITIVE |
195 |
Medium |
Shared primitive variable "flags" in one thread may not yield the value of the most recent write from another thread |
MT_CORRECTNESS |
AT_STALE_THREAD_WRITE_OF_PRIMITIVE |
218 |
Medium |
Shared primitive variable "flags" in one thread may not yield the value of the most recent write from another thread |
MT_CORRECTNESS |
AT_STALE_THREAD_WRITE_OF_PRIMITIVE |
240 |
Medium |
Exception thrown in class nl.tudelft.simulation.dsol.animation.d2.Renderable2d at new nl.tudelft.simulation.dsol.animation.d2.Renderable2d(Locatable, Contextualized) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. |
BAD_PRACTICE |
CT_CONSTRUCTOR_THROW |
88 |
Medium |
nl.tudelft.simulation.dsol.animation.d2.Renderable2dComparator
Bug |
Category |
Details |
Line |
Priority |
nl.tudelft.simulation.dsol.animation.d2.Renderable2dComparator.compare(Renderable2dInterface, Renderable2dInterface) incorrectly handles double value |
BAD_PRACTICE |
CO_COMPARETO_INCORRECT_FLOATING |
37 |
Medium |
nl.tudelft.simulation.dsol.animation.d2.Renderable2dComparator implements Comparator but not Serializable |
BAD_PRACTICE |
SE_COMPARATOR_SHOULD_BE_SERIALIZABLE |
16-47 |
Medium |
nl.tudelft.simulation.dsol.animation.d2.RenderableScale
Bug |
Category |
Details |
Line |
Priority |
Exception thrown in class nl.tudelft.simulation.dsol.animation.d2.RenderableScale at new nl.tudelft.simulation.dsol.animation.d2.RenderableScale() 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 |
Exception thrown in class nl.tudelft.simulation.dsol.animation.d2.RenderableScale at new nl.tudelft.simulation.dsol.animation.d2.RenderableScale(double) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. |
BAD_PRACTICE |
CT_CONSTRUCTOR_THROW |
60 |
Medium |
Exception thrown in class nl.tudelft.simulation.dsol.animation.d2.RenderableScale at new nl.tudelft.simulation.dsol.animation.d2.RenderableScale(double, double) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. |
BAD_PRACTICE |
CT_CONSTRUCTOR_THROW |
46 |
Medium |
nl.tudelft.simulation.dsol.animation.gis.GisObject
Bug |
Category |
Details |
Line |
Priority |
nl.tudelft.simulation.dsol.animation.gis.GisObject.getAttributeValues() may expose internal representation by returning GisObject.attributes |
MALICIOUS_CODE |
EI_EXPOSE_REP |
52 |
Medium |
new nl.tudelft.simulation.dsol.animation.gis.GisObject(Object, String[]) may expose internal representation by storing an externally mutable object into GisObject.attributes |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
34 |
Medium |
nl.tudelft.simulation.dsol.animation.gis.SerializableRectangle2d$Float
nl.tudelft.simulation.dsol.animation.graph.DoubleAppendList$DoubleAppendIterator
Bug |
Category |
Details |
Line |
Priority |
Should nl.tudelft.simulation.dsol.animation.graph.DoubleAppendList$DoubleAppendIterator be a _static_ inner class? |
PERFORMANCE |
SIC_INNER_SHOULD_BE_STATIC |
107-134 |
Medium |
nl.tudelft.simulation.dsol.animation.graph.FloatAppendList$FloatAppendIterator
Bug |
Category |
Details |
Line |
Priority |
Should nl.tudelft.simulation.dsol.animation.graph.FloatAppendList$FloatAppendIterator be a _static_ inner class? |
PERFORMANCE |
SIC_INNER_SHOULD_BE_STATIC |
107-134 |
Medium |
nl.tudelft.simulation.dsol.animation.interpolation.ColorInterpolation
Bug |
Category |
Details |
Line |
Priority |
Exception thrown in class nl.tudelft.simulation.dsol.animation.interpolation.ColorInterpolation at new nl.tudelft.simulation.dsol.animation.interpolation.ColorInterpolation(Color, Color, double, double) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. |
BAD_PRACTICE |
CT_CONSTRUCTOR_THROW |
55 |
Medium |
nl.tudelft.simulation.dsol.animation.interpolation.LinearInterpolation
Bug |
Category |
Details |
Line |
Priority |
Exception thrown in class nl.tudelft.simulation.dsol.animation.interpolation.LinearInterpolation at new nl.tudelft.simulation.dsol.animation.interpolation.LinearInterpolation(double, double, OrientedPoint3d, OrientedPoint3d) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. |
BAD_PRACTICE |
CT_CONSTRUCTOR_THROW |
46 |
Medium |