SpotBugs Bug Detector Report

The following document contains the results of SpotBugs

SpotBugs Version is 4.7.3

Threshold is medium

Effort is default

Summary

Classes Bugs Errors Missing Classes
70 67 0 0

Files

Class Bugs
org.woehlke.computer.kurzweil.lucky.mouses.LuckyMousesApplication 2
org.woehlke.computer.kurzweil.lucky.mouses.config.ComputerKurzweilProperties 17
org.woehlke.computer.kurzweil.lucky.mouses.control.ControllerThread 3
org.woehlke.computer.kurzweil.lucky.mouses.model.LuckyMousesModel 4
org.woehlke.computer.kurzweil.lucky.mouses.model.geometry.LatticeRectangle 4
org.woehlke.computer.kurzweil.lucky.mouses.model.geometry.LatticeVector 7
org.woehlke.computer.kurzweil.lucky.mouses.model.mouses.LinkedListNode 5
org.woehlke.computer.kurzweil.lucky.mouses.model.mouses.LinkedListNodeContainer 8
org.woehlke.computer.kurzweil.lucky.mouses.view.LuckyMousesFrame 14
org.woehlke.computer.kurzweil.lucky.mouses.view.canvas.LuckyMousesCanvas 1
org.woehlke.computer.kurzweil.lucky.mouses.view.labels.PanelButtons 2

org.woehlke.computer.kurzweil.lucky.mouses.LuckyMousesApplication

Bug Category Details Line Priority
Dead store to application in org.woehlke.computer.kurzweil.lucky.mouses.LuckyMousesApplication.main(String[]) STYLE DLS_DEAD_LOCAL_STORE 33 Medium
org.woehlke.computer.kurzweil.lucky.mouses.LuckyMousesApplication.main(String[]) needlessly instantiates a class that only supplies static methods BAD_PRACTICE ISC_INSTANTIATE_STATIC_CLASS 33 Low

org.woehlke.computer.kurzweil.lucky.mouses.config.ComputerKurzweilProperties

Bug Category Details Line Priority
org.woehlke.computer.kurzweil.lucky.mouses.config.ComputerKurzweilProperties.propertiesFactory(String, String) may fail to close stream BAD_PRACTICE OS_OPEN_STREAM 1018 Medium
Exception is caught when Exception is not thrown in org.woehlke.computer.kurzweil.lucky.mouses.config.ComputerKurzweilProperties.propertiesFactory(String, String) STYLE REC_CATCH_EXCEPTION 1023 Low
Class org.woehlke.computer.kurzweil.lucky.mouses.config.ComputerKurzweilProperties defines non-transient non-serializable instance field allinone BAD_PRACTICE SE_BAD_FIELD Not available High
Class org.woehlke.computer.kurzweil.lucky.mouses.config.ComputerKurzweilProperties defines non-transient non-serializable instance field cca BAD_PRACTICE SE_BAD_FIELD Not available High
Class org.woehlke.computer.kurzweil.lucky.mouses.config.ComputerKurzweilProperties defines non-transient non-serializable instance field dla BAD_PRACTICE SE_BAD_FIELD Not available High
Class org.woehlke.computer.kurzweil.lucky.mouses.config.ComputerKurzweilProperties defines non-transient non-serializable instance field gameoflive BAD_PRACTICE SE_BAD_FIELD Not available High
Class org.woehlke.computer.kurzweil.lucky.mouses.config.ComputerKurzweilProperties defines non-transient non-serializable instance field kochsnowflake BAD_PRACTICE SE_BAD_FIELD Not available High
Class org.woehlke.computer.kurzweil.lucky.mouses.config.ComputerKurzweilProperties defines non-transient non-serializable instance field luckyMouses BAD_PRACTICE SE_BAD_FIELD Not available High
Class org.woehlke.computer.kurzweil.lucky.mouses.config.ComputerKurzweilProperties defines non-transient non-serializable instance field mandelbrotJulia BAD_PRACTICE SE_BAD_FIELD Not available High
Class org.woehlke.computer.kurzweil.lucky.mouses.config.ComputerKurzweilProperties defines non-transient non-serializable instance field mandelbrotZoom BAD_PRACTICE SE_BAD_FIELD Not available High
Class org.woehlke.computer.kurzweil.lucky.mouses.config.ComputerKurzweilProperties defines non-transient non-serializable instance field randomwalk BAD_PRACTICE SE_BAD_FIELD Not available High
Class org.woehlke.computer.kurzweil.lucky.mouses.config.ComputerKurzweilProperties defines non-transient non-serializable instance field samegame BAD_PRACTICE SE_BAD_FIELD Not available High
Class org.woehlke.computer.kurzweil.lucky.mouses.config.ComputerKurzweilProperties defines non-transient non-serializable instance field sierpinskitriangle BAD_PRACTICE SE_BAD_FIELD Not available High
Class org.woehlke.computer.kurzweil.lucky.mouses.config.ComputerKurzweilProperties defines non-transient non-serializable instance field simulatedevolution BAD_PRACTICE SE_BAD_FIELD Not available High
Class org.woehlke.computer.kurzweil.lucky.mouses.config.ComputerKurzweilProperties defines non-transient non-serializable instance field tetris BAD_PRACTICE SE_BAD_FIELD Not available High
Class org.woehlke.computer.kurzweil.lucky.mouses.config.ComputerKurzweilProperties defines non-transient non-serializable instance field turmite BAD_PRACTICE SE_BAD_FIELD Not available High
Class org.woehlke.computer.kurzweil.lucky.mouses.config.ComputerKurzweilProperties defines non-transient non-serializable instance field wator BAD_PRACTICE SE_BAD_FIELD Not available High

org.woehlke.computer.kurzweil.lucky.mouses.control.ControllerThread

Bug Category Details Line Priority
Dead store to $L2 in org.woehlke.computer.kurzweil.lucky.mouses.control.ControllerThread.run() STYLE DLS_DEAD_LOCAL_STORE 50 Medium
new org.woehlke.computer.kurzweil.lucky.mouses.control.ControllerThread(LuckyMousesModel, LuckyMousesFrame) may expose internal representation by storing an externally mutable object into ControllerThread.view MALICIOUS_CODE EI_EXPOSE_REP2 36 Medium
Class org.woehlke.computer.kurzweil.lucky.mouses.control.ControllerThread implements same interface as superclass STYLE RI_REDUNDANT_INTERFACES 25-53 Low

org.woehlke.computer.kurzweil.lucky.mouses.model.LuckyMousesModel

Bug Category Details Line Priority
org.woehlke.computer.kurzweil.lucky.mouses.model.LuckyMousesModel.getLinkedListNodeContainer() may expose internal representation by returning LuckyMousesModel.linkedListNodeContainer MALICIOUS_CODE EI_EXPOSE_REP 33 Medium
org.woehlke.computer.kurzweil.lucky.mouses.model.LuckyMousesModel.getTab() may expose internal representation by returning LuckyMousesModel.tab MALICIOUS_CODE EI_EXPOSE_REP 32 Medium
org.woehlke.computer.kurzweil.lucky.mouses.model.LuckyMousesModel.getWorldDimensions() may expose internal representation by returning LuckyMousesModel.worldDimensions MALICIOUS_CODE EI_EXPOSE_REP 35 Medium
new org.woehlke.computer.kurzweil.lucky.mouses.model.LuckyMousesModel(LuckyMousesFrame) may expose internal representation by storing an externally mutable object into LuckyMousesModel.tab MALICIOUS_CODE EI_EXPOSE_REP2 38 Medium

org.woehlke.computer.kurzweil.lucky.mouses.model.geometry.LatticeRectangle

Bug Category Details Line Priority
org.woehlke.computer.kurzweil.lucky.mouses.model.geometry.LatticeRectangle.getDimension() may expose internal representation by returning LatticeRectangle.dimension MALICIOUS_CODE EI_EXPOSE_REP 37 Medium
org.woehlke.computer.kurzweil.lucky.mouses.model.geometry.LatticeRectangle.getStart() may expose internal representation by returning LatticeRectangle.start MALICIOUS_CODE EI_EXPOSE_REP 35 Medium
new org.woehlke.computer.kurzweil.lucky.mouses.model.geometry.LatticeRectangle(LatticePoint, LatticeDimension) may expose internal representation by storing an externally mutable object into LatticeRectangle.dimension MALICIOUS_CODE EI_EXPOSE_REP2 28 Medium
new org.woehlke.computer.kurzweil.lucky.mouses.model.geometry.LatticeRectangle(LatticePoint, LatticeDimension) may expose internal representation by storing an externally mutable object into LatticeRectangle.start MALICIOUS_CODE EI_EXPOSE_REP2 28 Medium

org.woehlke.computer.kurzweil.lucky.mouses.model.geometry.LatticeVector

Bug Category Details Line Priority
org.woehlke.computer.kurzweil.lucky.mouses.model.geometry.LatticeVector.getRelative() may expose internal representation by returning LatticeVector.relative MALICIOUS_CODE EI_EXPOSE_REP 38 Medium
org.woehlke.computer.kurzweil.lucky.mouses.model.geometry.LatticeVector.getStart() may expose internal representation by returning LatticeVector.start MALICIOUS_CODE EI_EXPOSE_REP 36 Medium
new org.woehlke.computer.kurzweil.lucky.mouses.model.geometry.LatticeVector(LatticePoint, LatticePoint) may expose internal representation by storing an externally mutable object into LatticeVector.relative MALICIOUS_CODE EI_EXPOSE_REP2 29 Medium
new org.woehlke.computer.kurzweil.lucky.mouses.model.geometry.LatticeVector(LatticePoint, LatticePoint) may expose internal representation by storing an externally mutable object into LatticeVector.start MALICIOUS_CODE EI_EXPOSE_REP2 29 Medium
org.woehlke.computer.kurzweil.lucky.mouses.model.geometry.LatticeVector.setRelative(LatticePoint) may expose internal representation by storing an externally mutable object into LatticeVector.relative MALICIOUS_CODE EI_EXPOSE_REP2 27 Medium
org.woehlke.computer.kurzweil.lucky.mouses.model.geometry.LatticeVector.setStart(LatticePoint) may expose internal representation by storing an externally mutable object into LatticeVector.start MALICIOUS_CODE EI_EXPOSE_REP2 27 Medium
Return value of LatticePoint.minus(LatticePoint) ignored, but method has no side effect STYLE RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT 54 Medium

org.woehlke.computer.kurzweil.lucky.mouses.model.mouses.LinkedListNode

Bug Category Details Line Priority
org.woehlke.computer.kurzweil.lucky.mouses.model.mouses.LinkedListNode.getNext() may expose internal representation by returning LinkedListNode.next MALICIOUS_CODE EI_EXPOSE_REP 28 Medium
org.woehlke.computer.kurzweil.lucky.mouses.model.mouses.LinkedListNode.getPoint() may expose internal representation by returning LinkedListNode.point MALICIOUS_CODE EI_EXPOSE_REP 26 Medium
new org.woehlke.computer.kurzweil.lucky.mouses.model.mouses.LinkedListNode(LatticePoint) may expose internal representation by storing an externally mutable object into LinkedListNode.point MALICIOUS_CODE EI_EXPOSE_REP2 31 Medium
org.woehlke.computer.kurzweil.lucky.mouses.model.mouses.LinkedListNode.setNext(LinkedListNode) may expose internal representation by storing an externally mutable object into LinkedListNode.next MALICIOUS_CODE EI_EXPOSE_REP2 20 Medium
org.woehlke.computer.kurzweil.lucky.mouses.model.mouses.LinkedListNode.setPoint(LatticePoint) may expose internal representation by storing an externally mutable object into LinkedListNode.point MALICIOUS_CODE EI_EXPOSE_REP2 20 Medium

org.woehlke.computer.kurzweil.lucky.mouses.model.mouses.LinkedListNodeContainer

Bug Category Details Line Priority
org.woehlke.computer.kurzweil.lucky.mouses.model.mouses.LinkedListNodeContainer.getCurrentNode() may expose internal representation by returning LinkedListNodeContainer.currentNode MALICIOUS_CODE EI_EXPOSE_REP 39 Medium
org.woehlke.computer.kurzweil.lucky.mouses.model.mouses.LinkedListNodeContainer.getLatticePointKeys() may expose internal representation by returning LinkedListNodeContainer.latticePointKeys MALICIOUS_CODE EI_EXPOSE_REP 36 Medium
org.woehlke.computer.kurzweil.lucky.mouses.model.mouses.LinkedListNodeContainer.getLatticePoints() may expose internal representation by returning LinkedListNodeContainer.latticePoints MALICIOUS_CODE EI_EXPOSE_REP 37 Medium
org.woehlke.computer.kurzweil.lucky.mouses.model.mouses.LinkedListNodeContainer.getStartNode() may expose internal representation by returning LinkedListNodeContainer.startNode MALICIOUS_CODE EI_EXPOSE_REP 38 Medium
org.woehlke.computer.kurzweil.lucky.mouses.model.mouses.LinkedListNodeContainer.getTab() may expose internal representation by returning LinkedListNodeContainer.tab MALICIOUS_CODE EI_EXPOSE_REP 33 Medium
org.woehlke.computer.kurzweil.lucky.mouses.model.mouses.LinkedListNodeContainer.getWorldDimensions() may expose internal representation by returning LinkedListNodeContainer.worldDimensions MALICIOUS_CODE EI_EXPOSE_REP 34 Medium
new org.woehlke.computer.kurzweil.lucky.mouses.model.mouses.LinkedListNodeContainer(LuckyMousesFrame, LatticeDimension) may expose internal representation by storing an externally mutable object into LinkedListNodeContainer.tab MALICIOUS_CODE EI_EXPOSE_REP2 43 Medium
new org.woehlke.computer.kurzweil.lucky.mouses.model.mouses.LinkedListNodeContainer(LuckyMousesFrame, LatticeDimension) may expose internal representation by storing an externally mutable object into LinkedListNodeContainer.worldDimensions MALICIOUS_CODE EI_EXPOSE_REP2 44 Medium

org.woehlke.computer.kurzweil.lucky.mouses.view.LuckyMousesFrame

Bug Category Details Line Priority
org.woehlke.computer.kurzweil.lucky.mouses.view.LuckyMousesFrame.getCanvas() may expose internal representation by returning LuckyMousesFrame.canvas MALICIOUS_CODE EI_EXPOSE_REP 60 Medium
org.woehlke.computer.kurzweil.lucky.mouses.view.LuckyMousesFrame.getConfig() may expose internal representation by returning LuckyMousesFrame.config MALICIOUS_CODE EI_EXPOSE_REP 54 Medium
org.woehlke.computer.kurzweil.lucky.mouses.view.LuckyMousesFrame.getController() may expose internal representation by returning LuckyMousesFrame.controller MALICIOUS_CODE EI_EXPOSE_REP 59 Medium
org.woehlke.computer.kurzweil.lucky.mouses.view.LuckyMousesFrame.getDimensionSize() may expose internal representation by returning LuckyMousesFrame.dimensionSize MALICIOUS_CODE EI_EXPOSE_REP 63 Medium
org.woehlke.computer.kurzweil.lucky.mouses.view.LuckyMousesFrame.getPanelButtons() may expose internal representation by returning LuckyMousesFrame.panelButtons MALICIOUS_CODE EI_EXPOSE_REP 57 Medium
org.woehlke.computer.kurzweil.lucky.mouses.view.LuckyMousesFrame.getPanelSubtitle() may expose internal representation by returning LuckyMousesFrame.panelSubtitle MALICIOUS_CODE EI_EXPOSE_REP 56 Medium
org.woehlke.computer.kurzweil.lucky.mouses.view.LuckyMousesFrame.getRectangleBounds() may expose internal representation by returning LuckyMousesFrame.rectangleBounds MALICIOUS_CODE EI_EXPOSE_REP 62 Medium
new org.woehlke.computer.kurzweil.lucky.mouses.view.LuckyMousesFrame(ComputerKurzweilProperties) may expose internal representation by storing an externally mutable object into LuckyMousesFrame.config MALICIOUS_CODE EI_EXPOSE_REP2 67 Medium
Overridable method addMouseListener is called from constructor new org.woehlke.computer.kurzweil.lucky.mouses.view.LuckyMousesFrame(ComputerKurzweilProperties). MALICIOUS_CODE MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR 79 Low
Overridable method addWindowListener is called from constructor new org.woehlke.computer.kurzweil.lucky.mouses.view.LuckyMousesFrame(ComputerKurzweilProperties). MALICIOUS_CODE MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR 78 Low
Overridable method setModeSwitch is called from constructor new org.woehlke.computer.kurzweil.lucky.mouses.view.LuckyMousesFrame(ComputerKurzweilProperties). MALICIOUS_CODE MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR 81 Low
Overridable method showMeInit is called from constructor new org.woehlke.computer.kurzweil.lucky.mouses.view.LuckyMousesFrame(ComputerKurzweilProperties). MALICIOUS_CODE MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR 80 Low
Class org.woehlke.computer.kurzweil.lucky.mouses.view.LuckyMousesFrame implements same interface as superclass STYLE RI_REDUNDANT_INTERFACES 43-177 Low
Class org.woehlke.computer.kurzweil.lucky.mouses.view.LuckyMousesFrame defines non-transient non-serializable instance field controller BAD_PRACTICE SE_BAD_FIELD Not available Medium

org.woehlke.computer.kurzweil.lucky.mouses.view.canvas.LuckyMousesCanvas

Bug Category Details Line Priority
org.woehlke.computer.kurzweil.lucky.mouses.view.canvas.LuckyMousesCanvas.getPreferredSize() may expose internal representation by returning LuckyMousesCanvas.preferredSize MALICIOUS_CODE EI_EXPOSE_REP 40 Medium

org.woehlke.computer.kurzweil.lucky.mouses.view.labels.PanelButtons

Bug Category Details Line Priority
new org.woehlke.computer.kurzweil.lucky.mouses.view.labels.PanelButtons(LuckyMousesModel, LuckyMousesFrame, ComputerKurzweilProperties) may expose internal representation by storing an externally mutable object into PanelButtons.tab MALICIOUS_CODE EI_EXPOSE_REP2 32 Medium
Overridable method addActionListener is called from constructor new org.woehlke.computer.kurzweil.lucky.mouses.view.labels.PanelButtons(LuckyMousesModel, LuckyMousesFrame, ComputerKurzweilProperties). MALICIOUS_CODE MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR 75 Low