SpotBugs Bug Detector Report

The following document contains the results of SpotBugs

SpotBugs Version is 4.7.0

Threshold is medium

Effort is default

Summary

Classes Bugs Errors Missing Classes
80 64 0 0

Files

Class Bugs
org.woehlke.computer.kurzweil.SierpinskiTriangleApplication 4
org.woehlke.computer.kurzweil.application.ComputerKurzweilProperties 18
org.woehlke.computer.kurzweil.application.ComputerKurzweilProperties$1 1
org.woehlke.computer.kurzweil.application.ComputerKurzweilProperties$Allinone$View 1
org.woehlke.computer.kurzweil.commons.model.fractal.GaussianNumberPlane 2
org.woehlke.computer.kurzweil.commons.model.turing.MandelbrotTuringMachine 1
org.woehlke.computer.kurzweil.commons.model.turing.MandelbrotTuringMachine$1 1
org.woehlke.computer.kurzweil.commons.model.turing.MandelbrotTuringPhaseState 1
org.woehlke.computer.kurzweil.commons.model.turing.MandelbrotTuringPositions 4
org.woehlke.computer.kurzweil.commons.model.turing.MandelbrotTuringPositions$1 1
org.woehlke.computer.kurzweil.commons.model.turing.Point 4
org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.SierpinskiTriangleCanvas 1
org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.SierpinskiTriangleController 8
org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.SierpinskiTriangleModel 6
org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.SierpinskiTriangleModel$1 1
org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.SierpinskiTriangleTab 7
org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.model.SierpinskiTriangleTabStateMachine$1 1
org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.ui.PanelButtons 2

org.woehlke.computer.kurzweil.SierpinskiTriangleApplication

Bug Category Details Line Priority
Dead store to frame in new org.woehlke.computer.kurzweil.SierpinskiTriangleApplication() STYLE DLS_DEAD_LOCAL_STORE 23 Medium
Dead store to application in org.woehlke.computer.kurzweil.SierpinskiTriangleApplication.main(String[]) STYLE DLS_DEAD_LOCAL_STORE 31 Medium
org.woehlke.computer.kurzweil.SierpinskiTriangleApplication.main(String[]) needlessly instantiates a class that only supplies static methods BAD_PRACTICE ISC_INSTANTIATE_STATIC_CLASS 31 Low
Usage of GetResource in new org.woehlke.computer.kurzweil.SierpinskiTriangleApplication() may be unsafe if class is extended BAD_PRACTICE UI_INHERITANCE_UNSAFE_GETRESOURCE 20 Low

org.woehlke.computer.kurzweil.application.ComputerKurzweilProperties

Bug Category Details Line Priority
org.woehlke.computer.kurzweil.application.ComputerKurzweilProperties.propertiesFactory(File) may fail to clean up java.io.InputStream EXPERIMENTAL OBL_UNSATISFIED_OBLIGATION 51 Medium
org.woehlke.computer.kurzweil.application.ComputerKurzweilProperties.propertiesFactory(String, String) may fail to close stream BAD_PRACTICE OS_OPEN_STREAM 69 Medium
Exception is caught when Exception is not thrown in org.woehlke.computer.kurzweil.application.ComputerKurzweilProperties.propertiesFactory(File) STYLE REC_CATCH_EXCEPTION 54 Low
Exception is caught when Exception is not thrown in org.woehlke.computer.kurzweil.application.ComputerKurzweilProperties.propertiesFactory(String, String) STYLE REC_CATCH_EXCEPTION 74 Low
Class org.woehlke.computer.kurzweil.application.ComputerKurzweilProperties defines non-transient non-serializable instance field allinone BAD_PRACTICE SE_BAD_FIELD Not available High
Class org.woehlke.computer.kurzweil.application.ComputerKurzweilProperties defines non-transient non-serializable instance field cca BAD_PRACTICE SE_BAD_FIELD Not available High
Class org.woehlke.computer.kurzweil.application.ComputerKurzweilProperties defines non-transient non-serializable instance field dla BAD_PRACTICE SE_BAD_FIELD Not available High
Class org.woehlke.computer.kurzweil.application.ComputerKurzweilProperties defines non-transient non-serializable instance field gameoflive BAD_PRACTICE SE_BAD_FIELD Not available High
Class org.woehlke.computer.kurzweil.application.ComputerKurzweilProperties defines non-transient non-serializable instance field kochsnowflake BAD_PRACTICE SE_BAD_FIELD Not available High
Class org.woehlke.computer.kurzweil.application.ComputerKurzweilProperties defines non-transient non-serializable instance field mandelbrot BAD_PRACTICE SE_BAD_FIELD Not available High
Class org.woehlke.computer.kurzweil.application.ComputerKurzweilProperties defines non-transient non-serializable instance field mandelbrotZoom BAD_PRACTICE SE_BAD_FIELD Not available High
Class org.woehlke.computer.kurzweil.application.ComputerKurzweilProperties defines non-transient non-serializable instance field randomwalk BAD_PRACTICE SE_BAD_FIELD Not available High
Class org.woehlke.computer.kurzweil.application.ComputerKurzweilProperties defines non-transient non-serializable instance field samegame BAD_PRACTICE SE_BAD_FIELD Not available High
Class org.woehlke.computer.kurzweil.application.ComputerKurzweilProperties defines non-transient non-serializable instance field sierpinskitriangle BAD_PRACTICE SE_BAD_FIELD Not available High
Class org.woehlke.computer.kurzweil.application.ComputerKurzweilProperties defines non-transient non-serializable instance field simulatedevolution BAD_PRACTICE SE_BAD_FIELD Not available High
Class org.woehlke.computer.kurzweil.application.ComputerKurzweilProperties defines non-transient non-serializable instance field tetris BAD_PRACTICE SE_BAD_FIELD Not available High
Class org.woehlke.computer.kurzweil.application.ComputerKurzweilProperties defines non-transient non-serializable instance field turmite BAD_PRACTICE SE_BAD_FIELD Not available High
Class org.woehlke.computer.kurzweil.application.ComputerKurzweilProperties defines non-transient non-serializable instance field wator BAD_PRACTICE SE_BAD_FIELD Not available High

org.woehlke.computer.kurzweil.application.ComputerKurzweilProperties$1

Bug Category Details Line Priority
Dead store to $L0 in org.woehlke.computer.kurzweil.application.ComputerKurzweilProperties$1.<static initializer for 1>() STYLE DLS_DEAD_LOCAL_STORE 83 Medium

org.woehlke.computer.kurzweil.application.ComputerKurzweilProperties$Allinone$View

Bug Category Details Line Priority
Confusing to have methods org.woehlke.computer.kurzweil.application.ComputerKurzweilProperties$Allinone$View.getSubtitle() and org.woehlke.computer.kurzweil.tabs.TabType.getSubTitle() BAD_PRACTICE NM_CONFUSING 162 Low

org.woehlke.computer.kurzweil.commons.model.fractal.GaussianNumberPlane

Bug Category Details Line Priority
Overridable method start is called from constructor new org.woehlke.computer.kurzweil.commons.model.fractal.GaussianNumberPlane(SierpinskiTriangleModel). MALICIOUS_CODE MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR 60 Low
org.woehlke.computer.kurzweil.commons.model.fractal.GaussianNumberPlane.lattice is a volatile reference to an array; the array elements are non-volatile MT_CORRECTNESS VO_VOLATILE_REFERENCE_TO_ARRAY Not available Medium

org.woehlke.computer.kurzweil.commons.model.turing.MandelbrotTuringMachine

Bug Category Details Line Priority
Overridable method start is called from constructor new org.woehlke.computer.kurzweil.commons.model.turing.MandelbrotTuringMachine(SierpinskiTriangleModel). MALICIOUS_CODE MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR 30 Low

org.woehlke.computer.kurzweil.commons.model.turing.MandelbrotTuringMachine$1

Bug Category Details Line Priority
Dead store to $L0 in org.woehlke.computer.kurzweil.commons.model.turing.MandelbrotTuringMachine$1.<static initializer for 1>() STYLE DLS_DEAD_LOCAL_STORE 41 Medium

org.woehlke.computer.kurzweil.commons.model.turing.MandelbrotTuringPhaseState

Bug Category Details Line Priority
Overridable method start is called from constructor new org.woehlke.computer.kurzweil.commons.model.turing.MandelbrotTuringPhaseState(). MALICIOUS_CODE MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR 21 Low

org.woehlke.computer.kurzweil.commons.model.turing.MandelbrotTuringPositions

Bug Category Details Line Priority
org.woehlke.computer.kurzweil.commons.model.turing.MandelbrotTuringPositions.getTuringPosition() may expose internal representation by returning MandelbrotTuringPositions.turingPosition MALICIOUS_CODE EI_EXPOSE_REP 43 Medium
new org.woehlke.computer.kurzweil.commons.model.turing.MandelbrotTuringPositions(Point) may expose internal representation by storing an externally mutable object into MandelbrotTuringPositions.worldDimensions MALICIOUS_CODE EI_EXPOSE_REP2 27 Medium
Overridable method start is called from constructor new org.woehlke.computer.kurzweil.commons.model.turing.MandelbrotTuringPositions(Point). MALICIOUS_CODE MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR 28 Low
Increment of volatile field org.woehlke.computer.kurzweil.commons.model.turing.MandelbrotTuringPositions.steps in org.woehlke.computer.kurzweil.commons.model.turing.MandelbrotTuringPositions.goForward() MT_CORRECTNESS VO_VOLATILE_INCREMENT 47 Medium

org.woehlke.computer.kurzweil.commons.model.turing.MandelbrotTuringPositions$1

Bug Category Details Line Priority
Dead store to $L0 in org.woehlke.computer.kurzweil.commons.model.turing.MandelbrotTuringPositions$1.<static initializer for 1>() STYLE DLS_DEAD_LOCAL_STORE 48 Medium

org.woehlke.computer.kurzweil.commons.model.turing.Point

Bug Category Details Line Priority
Increment of volatile field org.woehlke.computer.kurzweil.commons.model.turing.Point.y in org.woehlke.computer.kurzweil.commons.model.turing.Point.moveDown() MT_CORRECTNESS VO_VOLATILE_INCREMENT 45 Medium
Increment of volatile field org.woehlke.computer.kurzweil.commons.model.turing.Point.x in org.woehlke.computer.kurzweil.commons.model.turing.Point.moveLeft() MT_CORRECTNESS VO_VOLATILE_INCREMENT 49 Medium
Increment of volatile field org.woehlke.computer.kurzweil.commons.model.turing.Point.x in org.woehlke.computer.kurzweil.commons.model.turing.Point.moveRight() MT_CORRECTNESS VO_VOLATILE_INCREMENT 41 Medium
Increment of volatile field org.woehlke.computer.kurzweil.commons.model.turing.Point.y in org.woehlke.computer.kurzweil.commons.model.turing.Point.moveUp() MT_CORRECTNESS VO_VOLATILE_INCREMENT 37 Medium

org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.SierpinskiTriangleCanvas

Bug Category Details Line Priority
new org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.SierpinskiTriangleCanvas(SierpinskiTriangleModel) may expose internal representation by storing an externally mutable object into SierpinskiTriangleCanvas.app MALICIOUS_CODE EI_EXPOSE_REP2 27 Medium

org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.SierpinskiTriangleController

Bug Category Details Line Priority
Dead store to $L2 in org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.SierpinskiTriangleController.run() STYLE DLS_DEAD_LOCAL_STORE 43 Medium
Synchronization on Boolean in org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.SierpinskiTriangleController.exit() MT_CORRECTNESS DL_SYNCHRONIZATION_ON_BOOLEAN 49 High
Synchronization on Boolean in org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.SierpinskiTriangleController.run() MT_CORRECTNESS DL_SYNCHRONIZATION_ON_BOOLEAN 36 High
new org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.SierpinskiTriangleController(SierpinskiTriangleModel, SierpinskiTriangleTab) may expose internal representation by storing an externally mutable object into SierpinskiTriangleController.frame MALICIOUS_CODE EI_EXPOSE_REP2 28 Medium
new org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.SierpinskiTriangleController(SierpinskiTriangleModel, SierpinskiTriangleTab) may expose internal representation by storing an externally mutable object into SierpinskiTriangleController.mandelbrotModel MALICIOUS_CODE EI_EXPOSE_REP2 29 Medium
Synchronization on SierpinskiTriangleController.goOn in futile attempt to guard it MT_CORRECTNESS ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD 50 Medium
Class org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.SierpinskiTriangleController implements same interface as superclass STYLE RI_REDUNDANT_INTERFACES 22-52 Low
Unread field: org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.SierpinskiTriangleController.THREAD_SLEEP_TIME; should this field be static? PERFORMANCE SS_SHOULD_BE_STATIC 22 Medium

org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.SierpinskiTriangleModel

Bug Category Details Line Priority
org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.SierpinskiTriangleModel.getApplicationStateMachine() may expose internal representation by returning SierpinskiTriangleModel.applicationStateMachine MALICIOUS_CODE EI_EXPOSE_REP 28 Medium
org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.SierpinskiTriangleModel.getFrame() may expose internal representation by returning SierpinskiTriangleModel.frame MALICIOUS_CODE EI_EXPOSE_REP 102 Medium
org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.SierpinskiTriangleModel.getGaussianNumberPlane() may expose internal representation by returning SierpinskiTriangleModel.gaussianNumberPlane MALICIOUS_CODE EI_EXPOSE_REP 98 Medium
org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.SierpinskiTriangleModel.getProperties() may expose internal representation by returning SierpinskiTriangleModel.properties MALICIOUS_CODE EI_EXPOSE_REP 30 Medium
new org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.SierpinskiTriangleModel(ComputerKurzweilProperties, SierpinskiTriangleTab) may expose internal representation by storing an externally mutable object into SierpinskiTriangleModel.frame MALICIOUS_CODE EI_EXPOSE_REP2 35 Medium
new org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.SierpinskiTriangleModel(ComputerKurzweilProperties, SierpinskiTriangleTab) may expose internal representation by storing an externally mutable object into SierpinskiTriangleModel.properties MALICIOUS_CODE EI_EXPOSE_REP2 34 Medium

org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.SierpinskiTriangleModel$1

Bug Category Details Line Priority
Dead store to $L0 in org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.SierpinskiTriangleModel$1.<static initializer for 1>() STYLE DLS_DEAD_LOCAL_STORE 44 Medium

org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.SierpinskiTriangleTab

Bug Category Details Line Priority
org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.SierpinskiTriangleTab.getCanvas() may expose internal representation by returning SierpinskiTriangleTab.canvas MALICIOUS_CODE EI_EXPOSE_REP 147 Medium
Overridable method addMouseListener is called from constructor new org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.SierpinskiTriangleTab(ComputerKurzweilProperties). MALICIOUS_CODE MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR 55 Low
Overridable method addWindowListener is called from constructor new org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.SierpinskiTriangleTab(ComputerKurzweilProperties). MALICIOUS_CODE MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR 54 Low
Overridable method setModeSwitch is called from constructor new org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.SierpinskiTriangleTab(ComputerKurzweilProperties). MALICIOUS_CODE MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR 57 Low
Overridable method showMeInit is called from constructor new org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.SierpinskiTriangleTab(ComputerKurzweilProperties). MALICIOUS_CODE MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR 56 Low
Class org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.SierpinskiTriangleTab implements same interface as superclass STYLE RI_REDUNDANT_INTERFACES 39-147 Low
new org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.SierpinskiTriangleTab(ComputerKurzweilProperties) invokes org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.SierpinskiTriangleController.start() MT_CORRECTNESS SC_START_IN_CTOR 58 Low

org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.model.SierpinskiTriangleTabStateMachine$1

Bug Category Details Line Priority
Dead store to $L0 in org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.model.SierpinskiTriangleTabStateMachine$1.<static initializer for 1>() STYLE DLS_DEAD_LOCAL_STORE 31 Medium

org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.ui.PanelButtons

Bug Category Details Line Priority
new org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.ui.PanelButtons(SierpinskiTriangleModel) may expose internal representation by storing an externally mutable object into PanelButtons.model MALICIOUS_CODE EI_EXPOSE_REP2 32 Medium
Overridable method addActionListener is called from constructor new org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.ui.PanelButtons(SierpinskiTriangleModel). MALICIOUS_CODE MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR 47 Low