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
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 |