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

Files

Class Bugs
org.woehlke.computer.kurzweil.dla.config.ComputerKurzweilProperties 16
org.woehlke.computer.kurzweil.dla.control.ControllerThread 5
org.woehlke.computer.kurzweil.dla.model.DiffusionLimitedAggregationModel 6
org.woehlke.computer.kurzweil.dla.model.dendrite.Dendrite 1
org.woehlke.computer.kurzweil.dla.view.DiffusionLimitedAggregationFrame 11
org.woehlke.computer.kurzweil.dla.view.canvas.WorldCanvas 1

org.woehlke.computer.kurzweil.dla.config.ComputerKurzweilProperties

Bug Category Details Line Priority
org.woehlke.computer.kurzweil.dla.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.dla.config.ComputerKurzweilProperties.propertiesFactory(String, String) STYLE REC_CATCH_EXCEPTION 1023 Low
Class org.woehlke.computer.kurzweil.dla.config.ComputerKurzweilProperties defines non-transient non-serializable instance field allinone BAD_PRACTICE SE_BAD_FIELD Not available High
Class org.woehlke.computer.kurzweil.dla.config.ComputerKurzweilProperties defines non-transient non-serializable instance field cca BAD_PRACTICE SE_BAD_FIELD Not available High
Class org.woehlke.computer.kurzweil.dla.config.ComputerKurzweilProperties defines non-transient non-serializable instance field dla BAD_PRACTICE SE_BAD_FIELD Not available High
Class org.woehlke.computer.kurzweil.dla.config.ComputerKurzweilProperties defines non-transient non-serializable instance field gameoflive BAD_PRACTICE SE_BAD_FIELD Not available High
Class org.woehlke.computer.kurzweil.dla.config.ComputerKurzweilProperties defines non-transient non-serializable instance field kochsnowflake BAD_PRACTICE SE_BAD_FIELD Not available High
Class org.woehlke.computer.kurzweil.dla.config.ComputerKurzweilProperties defines non-transient non-serializable instance field mandelbrotJulia BAD_PRACTICE SE_BAD_FIELD Not available High
Class org.woehlke.computer.kurzweil.dla.config.ComputerKurzweilProperties defines non-transient non-serializable instance field mandelbrotZoom BAD_PRACTICE SE_BAD_FIELD Not available High
Class org.woehlke.computer.kurzweil.dla.config.ComputerKurzweilProperties defines non-transient non-serializable instance field randomwalk BAD_PRACTICE SE_BAD_FIELD Not available High
Class org.woehlke.computer.kurzweil.dla.config.ComputerKurzweilProperties defines non-transient non-serializable instance field samegame BAD_PRACTICE SE_BAD_FIELD Not available High
Class org.woehlke.computer.kurzweil.dla.config.ComputerKurzweilProperties defines non-transient non-serializable instance field sierpinskitriangle BAD_PRACTICE SE_BAD_FIELD Not available High
Class org.woehlke.computer.kurzweil.dla.config.ComputerKurzweilProperties defines non-transient non-serializable instance field simulatedevolution BAD_PRACTICE SE_BAD_FIELD Not available High
Class org.woehlke.computer.kurzweil.dla.config.ComputerKurzweilProperties defines non-transient non-serializable instance field tetris BAD_PRACTICE SE_BAD_FIELD Not available High
Class org.woehlke.computer.kurzweil.dla.config.ComputerKurzweilProperties defines non-transient non-serializable instance field turmite BAD_PRACTICE SE_BAD_FIELD Not available High
Class org.woehlke.computer.kurzweil.dla.config.ComputerKurzweilProperties defines non-transient non-serializable instance field wator BAD_PRACTICE SE_BAD_FIELD Not available High

org.woehlke.computer.kurzweil.dla.control.ControllerThread

Bug Category Details Line Priority
Synchronization on Boolean in org.woehlke.computer.kurzweil.dla.control.ControllerThread.exit() MT_CORRECTNESS DL_SYNCHRONIZATION_ON_BOOLEAN 60 High
Synchronization on Boolean in org.woehlke.computer.kurzweil.dla.control.ControllerThread.run() MT_CORRECTNESS DL_SYNCHRONIZATION_ON_BOOLEAN 47 High
new org.woehlke.computer.kurzweil.dla.control.ControllerThread(DiffusionLimitedAggregationFrame) may expose internal representation by storing an externally mutable object into ControllerThread.tab MALICIOUS_CODE EI_EXPOSE_REP2 37 Medium
Synchronization on ControllerThread.goOn in futile attempt to guard it MT_CORRECTNESS ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD 61 Medium
Class org.woehlke.computer.kurzweil.dla.control.ControllerThread implements same interface as superclass STYLE RI_REDUNDANT_INTERFACES 36-63 Low

org.woehlke.computer.kurzweil.dla.model.DiffusionLimitedAggregationModel

Bug Category Details Line Priority
Random object created and used only once in new org.woehlke.computer.kurzweil.dla.model.DiffusionLimitedAggregationModel(ComputerKurzweilProperties) BAD_PRACTICE DMI_RANDOM_USED_ONLY_ONCE 52 High
org.woehlke.computer.kurzweil.dla.model.DiffusionLimitedAggregationModel.getConfig() may expose internal representation by returning DiffusionLimitedAggregationModel.config MALICIOUS_CODE EI_EXPOSE_REP 31 Medium
org.woehlke.computer.kurzweil.dla.model.DiffusionLimitedAggregationModel.getParticles() may expose internal representation by returning DiffusionLimitedAggregationModel.particles MALICIOUS_CODE EI_EXPOSE_REP 37 Medium
org.woehlke.computer.kurzweil.dla.model.DiffusionLimitedAggregationModel.getWorldDimensions() may expose internal representation by returning DiffusionLimitedAggregationModel.worldDimensions MALICIOUS_CODE EI_EXPOSE_REP 34 Medium
new org.woehlke.computer.kurzweil.dla.model.DiffusionLimitedAggregationModel(ComputerKurzweilProperties) may expose internal representation by storing an externally mutable object into DiffusionLimitedAggregationModel.config MALICIOUS_CODE EI_EXPOSE_REP2 45 Medium
Switch statement found in org.woehlke.computer.kurzweil.dla.model.DiffusionLimitedAggregationModel.move() where default case is missing STYLE SF_SWITCH_NO_DEFAULT 65-69 Medium

org.woehlke.computer.kurzweil.dla.model.dendrite.Dendrite

Bug Category Details Line Priority
new org.woehlke.computer.kurzweil.dla.model.dendrite.Dendrite(Point) may expose internal representation by storing an externally mutable object into Dendrite.dimensions MALICIOUS_CODE EI_EXPOSE_REP2 28 Medium

org.woehlke.computer.kurzweil.dla.view.DiffusionLimitedAggregationFrame

Bug Category Details Line Priority
org.woehlke.computer.kurzweil.dla.view.DiffusionLimitedAggregationFrame.getCanvas() may expose internal representation by returning DiffusionLimitedAggregationFrame.canvas MALICIOUS_CODE EI_EXPOSE_REP 45 Medium
org.woehlke.computer.kurzweil.dla.view.DiffusionLimitedAggregationFrame.getConfig() may expose internal representation by returning DiffusionLimitedAggregationFrame.config MALICIOUS_CODE EI_EXPOSE_REP 47 Medium
org.woehlke.computer.kurzweil.dla.view.DiffusionLimitedAggregationFrame.getController() may expose internal representation by returning DiffusionLimitedAggregationFrame.controller MALICIOUS_CODE EI_EXPOSE_REP 44 Medium
org.woehlke.computer.kurzweil.dla.view.DiffusionLimitedAggregationFrame.getCopyright() may expose internal representation by returning DiffusionLimitedAggregationFrame.copyright MALICIOUS_CODE EI_EXPOSE_REP 43 Medium
org.woehlke.computer.kurzweil.dla.view.DiffusionLimitedAggregationFrame.getDimensionSize() may expose internal representation by returning DiffusionLimitedAggregationFrame.dimensionSize MALICIOUS_CODE EI_EXPOSE_REP 49 Medium
org.woehlke.computer.kurzweil.dla.view.DiffusionLimitedAggregationFrame.getRectangleBounds() may expose internal representation by returning DiffusionLimitedAggregationFrame.rectangleBounds MALICIOUS_CODE EI_EXPOSE_REP 48 Medium
org.woehlke.computer.kurzweil.dla.view.DiffusionLimitedAggregationFrame.getSubtitle() may expose internal representation by returning DiffusionLimitedAggregationFrame.subtitle MALICIOUS_CODE EI_EXPOSE_REP 42 Medium
new org.woehlke.computer.kurzweil.dla.view.DiffusionLimitedAggregationFrame(ComputerKurzweilProperties) may expose internal representation by storing an externally mutable object into DiffusionLimitedAggregationFrame.config MALICIOUS_CODE EI_EXPOSE_REP2 53 Medium
Overridable method addWindowListener is called from constructor new org.woehlke.computer.kurzweil.dla.view.DiffusionLimitedAggregationFrame(ComputerKurzweilProperties). MALICIOUS_CODE MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR 64 Low
Overridable method showMeInit is called from constructor new org.woehlke.computer.kurzweil.dla.view.DiffusionLimitedAggregationFrame(ComputerKurzweilProperties). MALICIOUS_CODE MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR 63 Low
Class org.woehlke.computer.kurzweil.dla.view.DiffusionLimitedAggregationFrame implements same interface as superclass STYLE RI_REDUNDANT_INTERFACES 42-146 Low

org.woehlke.computer.kurzweil.dla.view.canvas.WorldCanvas

Bug Category Details Line Priority
org.woehlke.computer.kurzweil.dla.view.canvas.WorldCanvas.getWorldDimensions() may expose internal representation by returning WorldCanvas.worldDimensions MALICIOUS_CODE EI_EXPOSE_REP 32 Medium