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
25 40 0 0

Files

Class Bugs
org.woehlke.computer.kurzweil.mandelbrot.MandelbrotSetApplication 3
org.woehlke.computer.kurzweil.mandelbrot.control.ControllerThread 8
org.woehlke.computer.kurzweil.mandelbrot.model.ApplicationModel 3
org.woehlke.computer.kurzweil.mandelbrot.model.ApplicationModel$1 1
org.woehlke.computer.kurzweil.mandelbrot.model.fractal.GaussianNumberPlane 2
org.woehlke.computer.kurzweil.mandelbrot.model.helper.Point 4
org.woehlke.computer.kurzweil.mandelbrot.model.state.ApplicationStateMachine$1 1
org.woehlke.computer.kurzweil.mandelbrot.model.turing.MandelbrotTuringMachine 1
org.woehlke.computer.kurzweil.mandelbrot.model.turing.MandelbrotTuringMachine$1 1
org.woehlke.computer.kurzweil.mandelbrot.model.turing.TuringPhaseState 1
org.woehlke.computer.kurzweil.mandelbrot.model.turing.TuringPositions 4
org.woehlke.computer.kurzweil.mandelbrot.model.turing.TuringPositions$1 1
org.woehlke.computer.kurzweil.mandelbrot.view.ApplicationCanvas 1
org.woehlke.computer.kurzweil.mandelbrot.view.ApplicationFrame 7
org.woehlke.computer.kurzweil.mandelbrot.view.PanelButtons 2

org.woehlke.computer.kurzweil.mandelbrot.MandelbrotSetApplication

Bug Category Details Line Priority
Dead store to frame in new org.woehlke.computer.kurzweil.mandelbrot.MandelbrotSetApplication() STYLE DLS_DEAD_LOCAL_STORE 17 Medium
Dead store to application in org.woehlke.computer.kurzweil.mandelbrot.MandelbrotSetApplication.main(String[]) STYLE DLS_DEAD_LOCAL_STORE 25 Medium
org.woehlke.computer.kurzweil.mandelbrot.MandelbrotSetApplication.main(String[]) needlessly instantiates a class that only supplies static methods BAD_PRACTICE ISC_INSTANTIATE_STATIC_CLASS 25 Low

org.woehlke.computer.kurzweil.mandelbrot.control.ControllerThread

Bug Category Details Line Priority
Dead store to $L2 in org.woehlke.computer.kurzweil.mandelbrot.control.ControllerThread.run() STYLE DLS_DEAD_LOCAL_STORE 45 Medium
Synchronization on Boolean in org.woehlke.computer.kurzweil.mandelbrot.control.ControllerThread.exit() MT_CORRECTNESS DL_SYNCHRONIZATION_ON_BOOLEAN 51 High
Synchronization on Boolean in org.woehlke.computer.kurzweil.mandelbrot.control.ControllerThread.run() MT_CORRECTNESS DL_SYNCHRONIZATION_ON_BOOLEAN 38 High
new org.woehlke.computer.kurzweil.mandelbrot.control.ControllerThread(ApplicationModel, ApplicationFrame) may expose internal representation by storing an externally mutable object into ControllerThread.applicationModel MALICIOUS_CODE EI_EXPOSE_REP2 31 Medium
new org.woehlke.computer.kurzweil.mandelbrot.control.ControllerThread(ApplicationModel, ApplicationFrame) may expose internal representation by storing an externally mutable object into ControllerThread.frame MALICIOUS_CODE EI_EXPOSE_REP2 30 Medium
Synchronization on ControllerThread.goOn in futile attempt to guard it MT_CORRECTNESS ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD 52 Medium
Class org.woehlke.computer.kurzweil.mandelbrot.control.ControllerThread implements same interface as superclass STYLE RI_REDUNDANT_INTERFACES 25-54 Low
Unread field: org.woehlke.computer.kurzweil.mandelbrot.control.ControllerThread.THREAD_SLEEP_TIME; should this field be static? PERFORMANCE SS_SHOULD_BE_STATIC 25 Medium

org.woehlke.computer.kurzweil.mandelbrot.model.ApplicationModel

Bug Category Details Line Priority
org.woehlke.computer.kurzweil.mandelbrot.model.ApplicationModel.getFrame() may expose internal representation by returning ApplicationModel.frame MALICIOUS_CODE EI_EXPOSE_REP 101 Medium
org.woehlke.computer.kurzweil.mandelbrot.model.ApplicationModel.getGaussianNumberPlane() may expose internal representation by returning ApplicationModel.gaussianNumberPlane MALICIOUS_CODE EI_EXPOSE_REP 97 Medium
new org.woehlke.computer.kurzweil.mandelbrot.model.ApplicationModel(Config, ApplicationFrame) may expose internal representation by storing an externally mutable object into ApplicationModel.frame MALICIOUS_CODE EI_EXPOSE_REP2 34 Medium

org.woehlke.computer.kurzweil.mandelbrot.model.ApplicationModel$1

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

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

Bug Category Details Line Priority
Overridable method start is called from constructor new org.woehlke.computer.kurzweil.mandelbrot.model.fractal.GaussianNumberPlane(ApplicationModel). MALICIOUS_CODE MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR 67 Low
org.woehlke.computer.kurzweil.mandelbrot.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.mandelbrot.model.helper.Point

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

org.woehlke.computer.kurzweil.mandelbrot.model.state.ApplicationStateMachine$1

Bug Category Details Line Priority
Dead store to $L0 in org.woehlke.computer.kurzweil.mandelbrot.model.state.ApplicationStateMachine$1.<static initializer for 1>() STYLE DLS_DEAD_LOCAL_STORE 29 Medium

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

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

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

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

org.woehlke.computer.kurzweil.mandelbrot.model.turing.TuringPhaseState

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

org.woehlke.computer.kurzweil.mandelbrot.model.turing.TuringPositions

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

org.woehlke.computer.kurzweil.mandelbrot.model.turing.TuringPositions$1

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

org.woehlke.computer.kurzweil.mandelbrot.view.ApplicationCanvas

Bug Category Details Line Priority
new org.woehlke.computer.kurzweil.mandelbrot.view.ApplicationCanvas(ApplicationModel) may expose internal representation by storing an externally mutable object into ApplicationCanvas.app MALICIOUS_CODE EI_EXPOSE_REP2 27 Medium

org.woehlke.computer.kurzweil.mandelbrot.view.ApplicationFrame

Bug Category Details Line Priority
org.woehlke.computer.kurzweil.mandelbrot.view.ApplicationFrame.getCanvas() may expose internal representation by returning ApplicationFrame.canvas MALICIOUS_CODE EI_EXPOSE_REP 146 Medium
Overridable method addMouseListener is called from constructor new org.woehlke.computer.kurzweil.mandelbrot.view.ApplicationFrame(Config). MALICIOUS_CODE MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR 54 Low
Overridable method addWindowListener is called from constructor new org.woehlke.computer.kurzweil.mandelbrot.view.ApplicationFrame(Config). MALICIOUS_CODE MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR 53 Low
Overridable method setModeSwitch is called from constructor new org.woehlke.computer.kurzweil.mandelbrot.view.ApplicationFrame(Config). MALICIOUS_CODE MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR 56 Low
Overridable method showMeInit is called from constructor new org.woehlke.computer.kurzweil.mandelbrot.view.ApplicationFrame(Config). MALICIOUS_CODE MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR 55 Low
Class org.woehlke.computer.kurzweil.mandelbrot.view.ApplicationFrame implements same interface as superclass STYLE RI_REDUNDANT_INTERFACES 38-146 Low
new org.woehlke.computer.kurzweil.mandelbrot.view.ApplicationFrame(Config) invokes org.woehlke.computer.kurzweil.mandelbrot.control.ControllerThread.start() MT_CORRECTNESS SC_START_IN_CTOR 57 Low

org.woehlke.computer.kurzweil.mandelbrot.view.PanelButtons

Bug Category Details Line Priority
new org.woehlke.computer.kurzweil.mandelbrot.view.PanelButtons(ApplicationModel) may expose internal representation by storing an externally mutable object into PanelButtons.model MALICIOUS_CODE EI_EXPOSE_REP2 34 Medium
Overridable method addActionListener is called from constructor new org.woehlke.computer.kurzweil.mandelbrot.view.PanelButtons(ApplicationModel). MALICIOUS_CODE MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR 39 Low