The following document contains the results of SpotBugs
SpotBugs Version is 4.7.0
Threshold is medium
Effort is default
Classes | Bugs | Errors | Missing Classes |
---|---|---|---|
80 | 64 | 0 | 0 |
Bug | Category | Details | Line | Priority |
---|---|---|---|---|
Dead store to frame in new org.woehlke.computer.kurzweil.TurmiteApplication() | STYLE | DLS_DEAD_LOCAL_STORE | 23 | Medium |
Dead store to application in org.woehlke.computer.kurzweil.TurmiteApplication.main(String[]) | STYLE | DLS_DEAD_LOCAL_STORE | 31 | Medium |
org.woehlke.computer.kurzweil.TurmiteApplication.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.TurmiteApplication() may be unsafe if class is extended | BAD_PRACTICE | UI_INHERITANCE_UNSAFE_GETRESOURCE | 20 | Low |
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 |
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 |
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 |
Bug | Category | Details | Line | Priority |
---|---|---|---|---|
Overridable method start is called from constructor new org.woehlke.computer.kurzweil.commons.model.fractal.GaussianNumberPlane(TurmiteModel). | 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 |
Bug | Category | Details | Line | Priority |
---|---|---|---|---|
Overridable method start is called from constructor new org.woehlke.computer.kurzweil.commons.model.turing.MandelbrotTuringMachine(TurmiteModel). | MALICIOUS_CODE | MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR | 30 | Low |
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 |
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 |
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 |
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 |
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 |
Bug | Category | Details | Line | Priority |
---|---|---|---|---|
new org.woehlke.computer.kurzweil.tabs.turmite.TurmiteCanvas(TurmiteModel) may expose internal representation by storing an externally mutable object into TurmiteCanvas.app | MALICIOUS_CODE | EI_EXPOSE_REP2 | 25 | Medium |
Bug | Category | Details | Line | Priority |
---|---|---|---|---|
Dead store to $L2 in org.woehlke.computer.kurzweil.tabs.turmite.TurmiteController.run() | STYLE | DLS_DEAD_LOCAL_STORE | 41 | Medium |
Synchronization on Boolean in org.woehlke.computer.kurzweil.tabs.turmite.TurmiteController.exit() | MT_CORRECTNESS | DL_SYNCHRONIZATION_ON_BOOLEAN | 47 | High |
Synchronization on Boolean in org.woehlke.computer.kurzweil.tabs.turmite.TurmiteController.run() | MT_CORRECTNESS | DL_SYNCHRONIZATION_ON_BOOLEAN | 34 | High |
new org.woehlke.computer.kurzweil.tabs.turmite.TurmiteController(TurmiteModel, TurmiteTab) may expose internal representation by storing an externally mutable object into TurmiteController.frame | MALICIOUS_CODE | EI_EXPOSE_REP2 | 26 | Medium |
new org.woehlke.computer.kurzweil.tabs.turmite.TurmiteController(TurmiteModel, TurmiteTab) may expose internal representation by storing an externally mutable object into TurmiteController.mandelbrotModel | MALICIOUS_CODE | EI_EXPOSE_REP2 | 27 | Medium |
Synchronization on TurmiteController.goOn in futile attempt to guard it | MT_CORRECTNESS | ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD | 48 | Medium |
Class org.woehlke.computer.kurzweil.tabs.turmite.TurmiteController implements same interface as superclass | STYLE | RI_REDUNDANT_INTERFACES | 20-50 | Low |
Unread field: org.woehlke.computer.kurzweil.tabs.turmite.TurmiteController.THREAD_SLEEP_TIME; should this field be static? | PERFORMANCE | SS_SHOULD_BE_STATIC | 20 | Medium |
Bug | Category | Details | Line | Priority |
---|---|---|---|---|
org.woehlke.computer.kurzweil.tabs.turmite.TurmiteModel.getApplicationStateMachine() may expose internal representation by returning TurmiteModel.applicationStateMachine | MALICIOUS_CODE | EI_EXPOSE_REP | 28 | Medium |
org.woehlke.computer.kurzweil.tabs.turmite.TurmiteModel.getFrame() may expose internal representation by returning TurmiteModel.frame | MALICIOUS_CODE | EI_EXPOSE_REP | 102 | Medium |
org.woehlke.computer.kurzweil.tabs.turmite.TurmiteModel.getGaussianNumberPlane() may expose internal representation by returning TurmiteModel.gaussianNumberPlane | MALICIOUS_CODE | EI_EXPOSE_REP | 98 | Medium |
org.woehlke.computer.kurzweil.tabs.turmite.TurmiteModel.getProperties() may expose internal representation by returning TurmiteModel.properties | MALICIOUS_CODE | EI_EXPOSE_REP | 30 | Medium |
new org.woehlke.computer.kurzweil.tabs.turmite.TurmiteModel(ComputerKurzweilProperties, TurmiteTab) may expose internal representation by storing an externally mutable object into TurmiteModel.frame | MALICIOUS_CODE | EI_EXPOSE_REP2 | 35 | Medium |
new org.woehlke.computer.kurzweil.tabs.turmite.TurmiteModel(ComputerKurzweilProperties, TurmiteTab) may expose internal representation by storing an externally mutable object into TurmiteModel.properties | MALICIOUS_CODE | EI_EXPOSE_REP2 | 34 | Medium |
Bug | Category | Details | Line | Priority |
---|---|---|---|---|
Dead store to $L0 in org.woehlke.computer.kurzweil.tabs.turmite.TurmiteModel$1.<static initializer for 1>() | STYLE | DLS_DEAD_LOCAL_STORE | 44 | Medium |
Bug | Category | Details | Line | Priority |
---|---|---|---|---|
org.woehlke.computer.kurzweil.tabs.turmite.TurmiteTab.getCanvas() may expose internal representation by returning TurmiteTab.canvas | MALICIOUS_CODE | EI_EXPOSE_REP | 147 | Medium |
Overridable method addMouseListener is called from constructor new org.woehlke.computer.kurzweil.tabs.turmite.TurmiteTab(ComputerKurzweilProperties). | MALICIOUS_CODE | MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR | 55 | Low |
Overridable method addWindowListener is called from constructor new org.woehlke.computer.kurzweil.tabs.turmite.TurmiteTab(ComputerKurzweilProperties). | MALICIOUS_CODE | MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR | 54 | Low |
Overridable method setModeSwitch is called from constructor new org.woehlke.computer.kurzweil.tabs.turmite.TurmiteTab(ComputerKurzweilProperties). | MALICIOUS_CODE | MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR | 57 | Low |
Overridable method showMeInit is called from constructor new org.woehlke.computer.kurzweil.tabs.turmite.TurmiteTab(ComputerKurzweilProperties). | MALICIOUS_CODE | MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR | 56 | Low |
Class org.woehlke.computer.kurzweil.tabs.turmite.TurmiteTab implements same interface as superclass | STYLE | RI_REDUNDANT_INTERFACES | 39-147 | Low |
new org.woehlke.computer.kurzweil.tabs.turmite.TurmiteTab(ComputerKurzweilProperties) invokes org.woehlke.computer.kurzweil.tabs.turmite.TurmiteController.start() | MT_CORRECTNESS | SC_START_IN_CTOR | 58 | Low |
Bug | Category | Details | Line | Priority |
---|---|---|---|---|
Dead store to $L0 in org.woehlke.computer.kurzweil.tabs.turmite.model.TurmiteTabStateMachine$1.<static initializer for 1>() | STYLE | DLS_DEAD_LOCAL_STORE | 31 | Medium |
Bug | Category | Details | Line | Priority |
---|---|---|---|---|
new org.woehlke.computer.kurzweil.tabs.turmite.ui.PanelButtons(TurmiteModel) 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.turmite.ui.PanelButtons(TurmiteModel). | MALICIOUS_CODE | MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR | 47 | Low |