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 |
---|---|---|---|
12 | 35 | 0 | 0 |
Bug | Category | Details | Line | Priority |
---|---|---|---|---|
Dead store to frame in org.woehlke.computer.kurzweil.cyclic.cellular.automaton.CyclicCellularAutomatonApplication.main(String[]) | STYLE | DLS_DEAD_LOCAL_STORE | 26 | Medium |
Bug | Category | Details | Line | Priority |
---|---|---|---|---|
Dead store to $L5 in new org.woehlke.computer.kurzweil.cyclic.cellular.automaton.config.Config() | STYLE | DLS_DEAD_LOCAL_STORE | 37 | Medium |
Bug | Category | Details | Line | Priority |
---|---|---|---|---|
org.woehlke.computer.kurzweil.cyclic.cellular.automaton.config.ObjectRegistry.getCanvas() may expose internal representation by returning ObjectRegistry.canvas | MALICIOUS_CODE | EI_EXPOSE_REP | 45 | Medium |
org.woehlke.computer.kurzweil.cyclic.cellular.automaton.config.ObjectRegistry.getController() may expose internal representation by returning ObjectRegistry.controller | MALICIOUS_CODE | EI_EXPOSE_REP | 37 | Medium |
org.woehlke.computer.kurzweil.cyclic.cellular.automaton.config.ObjectRegistry.getFrame() may expose internal representation by returning ObjectRegistry.frame | MALICIOUS_CODE | EI_EXPOSE_REP | 61 | Medium |
org.woehlke.computer.kurzweil.cyclic.cellular.automaton.config.ObjectRegistry.getPanelButtons() may expose internal representation by returning ObjectRegistry.panelButtons | MALICIOUS_CODE | EI_EXPOSE_REP | 77 | Medium |
org.woehlke.computer.kurzweil.cyclic.cellular.automaton.config.ObjectRegistry.getSubtitle() may expose internal representation by returning ObjectRegistry.subtitle | MALICIOUS_CODE | EI_EXPOSE_REP | 85 | Medium |
org.woehlke.computer.kurzweil.cyclic.cellular.automaton.config.ObjectRegistry.setCanvas(CyclicCellularAutomatonCanvas) may expose internal representation by storing an externally mutable object into ObjectRegistry.canvas | MALICIOUS_CODE | EI_EXPOSE_REP2 | 49 | Medium |
org.woehlke.computer.kurzweil.cyclic.cellular.automaton.config.ObjectRegistry.setController(CyclicCellularAutomatonController) may expose internal representation by storing an externally mutable object into ObjectRegistry.controller | MALICIOUS_CODE | EI_EXPOSE_REP2 | 41 | Medium |
org.woehlke.computer.kurzweil.cyclic.cellular.automaton.config.ObjectRegistry.setFrame(CyclicCellularAutomatonFrame) may expose internal representation by storing an externally mutable object into ObjectRegistry.frame | MALICIOUS_CODE | EI_EXPOSE_REP2 | 65 | Medium |
org.woehlke.computer.kurzweil.cyclic.cellular.automaton.config.ObjectRegistry.setPanelButtons(PanelButtons) may expose internal representation by storing an externally mutable object into ObjectRegistry.panelButtons | MALICIOUS_CODE | EI_EXPOSE_REP2 | 81 | Medium |
org.woehlke.computer.kurzweil.cyclic.cellular.automaton.config.ObjectRegistry.setSubtitle(PanelSubtitle) may expose internal representation by storing an externally mutable object into ObjectRegistry.subtitle | MALICIOUS_CODE | EI_EXPOSE_REP2 | 89 | Medium |
Bug | Category | Details | Line | Priority |
---|---|---|---|---|
Synchronization on Boolean in org.woehlke.computer.kurzweil.cyclic.cellular.automaton.control.CyclicCellularAutomatonController.exit() | MT_CORRECTNESS | DL_SYNCHRONIZATION_ON_BOOLEAN | 52 | High |
Synchronization on Boolean in org.woehlke.computer.kurzweil.cyclic.cellular.automaton.control.CyclicCellularAutomatonController.run() | MT_CORRECTNESS | DL_SYNCHRONIZATION_ON_BOOLEAN | 37 | High |
new org.woehlke.computer.kurzweil.cyclic.cellular.automaton.control.CyclicCellularAutomatonController(ObjectRegistry) may expose internal representation by storing an externally mutable object into CyclicCellularAutomatonController.ctx | MALICIOUS_CODE | EI_EXPOSE_REP2 | 30 | Medium |
Synchronization on CyclicCellularAutomatonController.goOn in futile attempt to guard it | MT_CORRECTNESS | ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD | 53 | Medium |
Class org.woehlke.computer.kurzweil.cyclic.cellular.automaton.control.CyclicCellularAutomatonController implements same interface as superclass | STYLE | RI_REDUNDANT_INTERFACES | 29-68 | Low |
Class org.woehlke.computer.kurzweil.cyclic.cellular.automaton.control.CyclicCellularAutomatonController defines non-transient non-serializable instance field ctx | BAD_PRACTICE | SE_BAD_FIELD | Not available | High |
Bug | Category | Details | Line | Priority |
---|---|---|---|---|
new org.woehlke.computer.kurzweil.cyclic.cellular.automaton.model.CyclicCellularAutomatonLattice(ObjectRegistry) may expose internal representation by storing an externally mutable object into CyclicCellularAutomatonLattice.ctx | MALICIOUS_CODE | EI_EXPOSE_REP2 | 38 | Medium |
Overridable method startVonNeumann is called from constructor new org.woehlke.computer.kurzweil.cyclic.cellular.automaton.model.CyclicCellularAutomatonLattice(ObjectRegistry). | MALICIOUS_CODE | MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR | 40 | Low |
Class org.woehlke.computer.kurzweil.cyclic.cellular.automaton.model.CyclicCellularAutomatonLattice defines non-transient non-serializable instance field ctx | BAD_PRACTICE | SE_BAD_FIELD | Not available | High |
org.woehlke.computer.kurzweil.cyclic.cellular.automaton.model.CyclicCellularAutomatonLattice.lattice is a volatile reference to an array; the array elements are non-volatile | MT_CORRECTNESS | VO_VOLATILE_REFERENCE_TO_ARRAY | Not available | Low |
Bug | Category | Details | Line | Priority |
---|---|---|---|---|
new org.woehlke.computer.kurzweil.cyclic.cellular.automaton.view.CyclicCellularAutomatonCanvas(ObjectRegistry) may expose internal representation by storing an externally mutable object into CyclicCellularAutomatonCanvas.ctx | MALICIOUS_CODE | EI_EXPOSE_REP2 | 27 | Medium |
Class org.woehlke.computer.kurzweil.cyclic.cellular.automaton.view.CyclicCellularAutomatonCanvas defines non-transient non-serializable instance field ctx | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium |
Bug | Category | Details | Line | Priority |
---|---|---|---|---|
new org.woehlke.computer.kurzweil.cyclic.cellular.automaton.view.CyclicCellularAutomatonFrame(ObjectRegistry) may expose internal representation by storing an externally mutable object into CyclicCellularAutomatonFrame.ctx | MALICIOUS_CODE | EI_EXPOSE_REP2 | 36 | Medium |
Overridable method addWindowListener is called from constructor new org.woehlke.computer.kurzweil.cyclic.cellular.automaton.view.CyclicCellularAutomatonFrame(ObjectRegistry). | MALICIOUS_CODE | MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR | 42 | Low |
Overridable method getContentPane is called from constructor new org.woehlke.computer.kurzweil.cyclic.cellular.automaton.view.CyclicCellularAutomatonFrame(ObjectRegistry). | MALICIOUS_CODE | MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR | 38 | Low |
Overridable method setFrame is called from constructor new org.woehlke.computer.kurzweil.cyclic.cellular.automaton.view.CyclicCellularAutomatonFrame(ObjectRegistry). | MALICIOUS_CODE | MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR | 37 | Low |
Overridable method showMe is called from constructor new org.woehlke.computer.kurzweil.cyclic.cellular.automaton.view.CyclicCellularAutomatonFrame(ObjectRegistry). | MALICIOUS_CODE | MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR | 44 | Low |
Class org.woehlke.computer.kurzweil.cyclic.cellular.automaton.view.CyclicCellularAutomatonFrame implements same interface as superclass | STYLE | RI_REDUNDANT_INTERFACES | 35-78 | Low |
new org.woehlke.computer.kurzweil.cyclic.cellular.automaton.view.CyclicCellularAutomatonFrame(ObjectRegistry) invokes org.woehlke.computer.kurzweil.cyclic.cellular.automaton.control.CyclicCellularAutomatonController.start() | MT_CORRECTNESS | SC_START_IN_CTOR | 43 | Medium |
Class org.woehlke.computer.kurzweil.cyclic.cellular.automaton.view.CyclicCellularAutomatonFrame defines non-transient non-serializable instance field ctx | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium |
Bug | Category | Details | Line | Priority |
---|---|---|---|---|
new org.woehlke.computer.kurzweil.cyclic.cellular.automaton.view.PanelButtons(ObjectRegistry) may expose internal representation by storing an externally mutable object into PanelButtons.ctx | MALICIOUS_CODE | EI_EXPOSE_REP2 | 31 | Medium |
Overridable method addActionListener is called from constructor new org.woehlke.computer.kurzweil.cyclic.cellular.automaton.view.PanelButtons(ObjectRegistry). | MALICIOUS_CODE | MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR | 43 | Low |
Class org.woehlke.computer.kurzweil.cyclic.cellular.automaton.view.PanelButtons defines non-transient non-serializable instance field ctx | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |