The following document contains the results of SpotBugs
SpotBugs Version is 4.7.1
Threshold is medium
Effort is default
| Classes | Bugs | Errors | Missing Classes |
|---|---|---|---|
| 277 | 164 | 0 | 0 |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Hard coded reference to an absolute pathname in nl.tudelft.simulation.dsol.animation.Editable.<static initializer for Editable>() | STYLE | DMI_HARDCODED_ABSOLUTE_FILENAME | 45 | Medium |
| nl.tudelft.simulation.dsol.animation.Editable.getVertices() may expose internal representation by returning Editable.vertices | MALICIOUS_CODE | EI_EXPOSE_REP | 104 | Medium |
| new nl.tudelft.simulation.dsol.animation.Editable(SimulatorInterface, OrientedPoint3d) may expose internal representation by storing an externally mutable object into Editable.simulator | MALICIOUS_CODE | EI_EXPOSE_REP2 | 95 | Medium |
| nl.tudelft.simulation.dsol.animation.Editable.setVertices(CartesianPoint[]) may expose internal representation by storing an externally mutable object into Editable.vertices | MALICIOUS_CODE | EI_EXPOSE_REP2 | 131 | Medium |
| Public static nl.tudelft.simulation.dsol.animation.Editable.listEditables() may expose internal representation by returning Editable.editables | MALICIOUS_CODE | MS_EXPOSE_REP | 84 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| nl.tudelft.simulation.dsol.eventlists.TableModelEventList.getTableModel() may expose internal representation by returning TableModelEventList.tableModel | MALICIOUS_CODE | EI_EXPOSE_REP | 66 | Medium |
| nl.tudelft.simulation.dsol.eventlists.TableModelEventList.HEADER should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | 37 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| nl.tudelft.simulation.dsol.experiment.Experiment.getModel() may expose internal representation by returning Experiment.model | MALICIOUS_CODE | EI_EXPOSE_REP | 155 | Medium |
| nl.tudelft.simulation.dsol.experiment.Experiment.getRunControl() may expose internal representation by returning Experiment.runControl | MALICIOUS_CODE | EI_EXPOSE_REP | 137 | Medium |
| nl.tudelft.simulation.dsol.experiment.Experiment.getSimulator() may expose internal representation by returning Experiment.simulator | MALICIOUS_CODE | EI_EXPOSE_REP | 146 | Medium |
| nl.tudelft.simulation.dsol.experiment.Experiment.getStartedReplications() may expose internal representation by returning Experiment.startedReplications | MALICIOUS_CODE | EI_EXPOSE_REP | 164 | Medium |
| new nl.tudelft.simulation.dsol.experiment.Experiment(SimulatorInterface, DSOLModel, ExperimentRunControl) may expose internal representation by storing an externally mutable object into Experiment.model | MALICIOUS_CODE | EI_EXPOSE_REP2 | 130 | Medium |
| new nl.tudelft.simulation.dsol.experiment.Experiment(SimulatorInterface, DSOLModel, ExperimentRunControl) may expose internal representation by storing an externally mutable object into Experiment.runControl | MALICIOUS_CODE | EI_EXPOSE_REP2 | 128 | Medium |
| new nl.tudelft.simulation.dsol.experiment.Experiment(SimulatorInterface, DSOLModel, ExperimentRunControl) may expose internal representation by storing an externally mutable object into Experiment.simulator | MALICIOUS_CODE | EI_EXPOSE_REP2 | 129 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| new nl.tudelft.simulation.dsol.experiment.Experiment$ExperimentThread(Experiment) may expose internal representation by storing an externally mutable object into Experiment$ExperimentThread.experiment | MALICIOUS_CODE | EI_EXPOSE_REP2 | 462 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| nl.tudelft.simulation.dsol.experiment.ExperimentReplication.getExperiment() may expose internal representation by returning ExperimentReplication.experiment | MALICIOUS_CODE | EI_EXPOSE_REP | 122 | Medium |
| new nl.tudelft.simulation.dsol.experiment.ExperimentReplication(RunControl, Experiment, int) may expose internal representation by storing an externally mutable object into ExperimentReplication.experiment | MALICIOUS_CODE | EI_EXPOSE_REP2 | 66 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| nl.tudelft.simulation.dsol.experiment.Replication.getRunControl() may expose internal representation by returning Replication.runControl | MALICIOUS_CODE | EI_EXPOSE_REP | 76 | Medium |
| new nl.tudelft.simulation.dsol.experiment.Replication(RunControl) may expose internal representation by storing an externally mutable object into Replication.runControl | MALICIOUS_CODE | EI_EXPOSE_REP2 | 69 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| nl.tudelft.simulation.dsol.experiment.StreamInformation.getStreams() may expose internal representation by returning StreamInformation.streams | MALICIOUS_CODE | EI_EXPOSE_REP | 69 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| nl.tudelft.simulation.dsol.experiment.StreamSeedInformation.getStreamSeedMap() may expose internal representation by returning StreamSeedInformation.streamSeedMap | MALICIOUS_CODE | EI_EXPOSE_REP | 112 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| nl.tudelft.simulation.dsol.experiment.StreamSeedUpdater.getStreamSeedMap() may expose internal representation by returning StreamSeedUpdater.streamSeedMap | MALICIOUS_CODE | EI_EXPOSE_REP | 84 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| new nl.tudelft.simulation.dsol.formalisms.Resource(DevsSimulatorInterface, String, double) may expose internal representation by storing an externally mutable object into Resource.simulator | MALICIOUS_CODE | EI_EXPOSE_REP2 | 88 | Medium |
| Inconsistent synchronization of nl.tudelft.simulation.dsol.formalisms.Resource.claimedCapacity; locked 57% of time | MT_CORRECTNESS | IS2_INCONSISTENT_SYNC | 117 | Medium |
| Class nl.tudelft.simulation.dsol.formalisms.Resource defines non-transient non-serializable instance field requests | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| new nl.tudelft.simulation.dsol.formalisms.dess.DifferentialEquation(DessSimulatorInterface, double, NumericalIntegratorType, int) may expose internal representation by storing an externally mutable object into DifferentialEquation.simulator | MALICIOUS_CODE | EI_EXPOSE_REP2 | 97 | Medium |
| nl.tudelft.simulation.dsol.formalisms.dess.DifferentialEquation.initialize(double, double[]) may expose internal representation by storing an externally mutable object into DifferentialEquation.previousY | MALICIOUS_CODE | EI_EXPOSE_REP2 | 136 | Medium |
| The class name nl.tudelft.simulation.dsol.formalisms.dess.DifferentialEquation shadows the simple name of the superclass nl.tudelft.simulation.jstats.ode.DifferentialEquation | BAD_PRACTICE | NM_SAME_SIMPLE_NAME_AS_SUPERCLASS | 41-137 | High |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| nl.tudelft.simulation.dsol.formalisms.devs.ESDEVS.AbstractDEVSModel.getParentModel() may expose internal representation by returning AbstractDEVSModel.parentModel | MALICIOUS_CODE | EI_EXPOSE_REP | 135 | Medium |
| nl.tudelft.simulation.dsol.formalisms.devs.ESDEVS.AbstractDEVSModel.getSimulator() may expose internal representation by returning AbstractDEVSModel.simulator | MALICIOUS_CODE | EI_EXPOSE_REP | 119 | Medium |
| new nl.tudelft.simulation.dsol.formalisms.devs.ESDEVS.AbstractDEVSModel(String, DevsSimulatorInterface, CoupledModel) may expose internal representation by storing an externally mutable object into AbstractDEVSModel.parentModel | MALICIOUS_CODE | EI_EXPOSE_REP2 | 106 | Medium |
| new nl.tudelft.simulation.dsol.formalisms.devs.ESDEVS.AbstractDEVSModel(String, DevsSimulatorInterface, CoupledModel) may expose internal representation by storing an externally mutable object into AbstractDEVSModel.simulator | MALICIOUS_CODE | EI_EXPOSE_REP2 | 105 | Medium |
| nl.tudelft.simulation.dsol.formalisms.devs.ESDEVS.AbstractDEVSModel.setSimulator(DevsSimulatorInterface) may expose internal representation by storing an externally mutable object into AbstractDEVSModel.simulator | MALICIOUS_CODE | EI_EXPOSE_REP2 | 127 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| nl.tudelft.simulation.dsol.formalisms.devs.ESDEVS.AbstractDEVSPortModel.getInputPortMap() may expose internal representation by returning AbstractDEVSPortModel.inputPortMap | MALICIOUS_CODE | EI_EXPOSE_REP | 123 | Medium |
| nl.tudelft.simulation.dsol.formalisms.devs.ESDEVS.AbstractDEVSPortModel.getOutputPortMap() may expose internal representation by returning AbstractDEVSPortModel.outputPortMap | MALICIOUS_CODE | EI_EXPOSE_REP | 131 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| new nl.tudelft.simulation.dsol.formalisms.devs.ESDEVS.AtomicModel(String, CoupledModel, Number, Phase, boolean) may expose internal representation by storing an externally mutable object into AtomicModel.phase | MALICIOUS_CODE | EI_EXPOSE_REP2 | 154 | Medium |
| new nl.tudelft.simulation.dsol.formalisms.devs.ESDEVS.AtomicModel(String, DevsSimulatorInterface, Number, Phase, boolean) may expose internal representation by storing an externally mutable object into AtomicModel.phase | MALICIOUS_CODE | EI_EXPOSE_REP2 | 136 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Using pointer equality to compare a InputPortInterface<T,TYPE> with a AbstractDEVSModel<T> in nl.tudelft.simulation.dsol.formalisms.devs.ESDEVS.CoupledModel.removeInternalCoupling(OutputPortInterface, InputPortInterface) | CORRECTNESS | EC_UNRELATED_TYPES_USING_POINTER_EQUALITY | 178 | Medium |
| Using pointer equality to compare a OutputPortInterface<T,TYPE> with a AbstractDEVSModel<T> in nl.tudelft.simulation.dsol.formalisms.devs.ESDEVS.CoupledModel.removeInternalCoupling(OutputPortInterface, InputPortInterface) | CORRECTNESS | EC_UNRELATED_TYPES_USING_POINTER_EQUALITY | 178 | Medium |
| nl.tudelft.simulation.dsol.formalisms.devs.ESDEVS.CoupledModel.getExternalInputCouplingSet() may expose internal representation by returning CoupledModel.externalInputCouplingSet | MALICIOUS_CODE | EI_EXPOSE_REP | 406 | Medium |
| nl.tudelft.simulation.dsol.formalisms.devs.ESDEVS.CoupledModel.getExternalOutputCouplingSet() may expose internal representation by returning CoupledModel.externalOutputCouplingSet | MALICIOUS_CODE | EI_EXPOSE_REP | 398 | Medium |
| nl.tudelft.simulation.dsol.formalisms.devs.ESDEVS.CoupledModel.getInternalCouplingSet() may expose internal representation by returning CoupledModel.internalCouplingSet | MALICIOUS_CODE | EI_EXPOSE_REP | 390 | Medium |
| nl.tudelft.simulation.dsol.formalisms.devs.ESDEVS.CoupledModel.getModelComponents() may expose internal representation by returning CoupledModel.modelComponents | MALICIOUS_CODE | EI_EXPOSE_REP | 414 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| nl.tudelft.simulation.dsol.formalisms.devs.ESDEVS.InputPort.getModel() may expose internal representation by returning InputPort.model | MALICIOUS_CODE | EI_EXPOSE_REP | 168 | Medium |
| new nl.tudelft.simulation.dsol.formalisms.devs.ESDEVS.InputPort(AtomicModel) may expose internal representation by storing an externally mutable object into InputPort.model | MALICIOUS_CODE | EI_EXPOSE_REP2 | 51 | Medium |
| new nl.tudelft.simulation.dsol.formalisms.devs.ESDEVS.InputPort(CoupledModel) may expose internal representation by storing an externally mutable object into InputPort.model | MALICIOUS_CODE | EI_EXPOSE_REP2 | 41 | Medium |
| nl.tudelft.simulation.dsol.formalisms.devs.ESDEVS.InputPort.receive(Object, Number) calls Thread.sleep() with a lock held | MT_CORRECTNESS | SWL_SLEEP_WITH_LOCK_HELD | 72 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| nl.tudelft.simulation.dsol.formalisms.devs.ESDEVS.OutputPort.getModel() may expose internal representation by returning OutputPort.model | MALICIOUS_CODE | EI_EXPOSE_REP | 74 | Medium |
| new nl.tudelft.simulation.dsol.formalisms.devs.ESDEVS.OutputPort(AtomicModel) may expose internal representation by storing an externally mutable object into OutputPort.model | MALICIOUS_CODE | EI_EXPOSE_REP2 | 43 | Medium |
| new nl.tudelft.simulation.dsol.formalisms.devs.ESDEVS.OutputPort(CoupledModel) may expose internal representation by storing an externally mutable object into OutputPort.model | MALICIOUS_CODE | EI_EXPOSE_REP2 | 34 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| new nl.tudelft.simulation.dsol.formalisms.devs.ESDEVS.Phase(String) invokes inefficient new String(String) constructor | PERFORMANCE | DM_STRING_CTOR | 42 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Class nl.tudelft.simulation.dsol.formalisms.eventscheduling.LambdaSimEvent defines non-transient non-serializable instance field executable | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| nl.tudelft.simulation.dsol.formalisms.eventscheduling.SimEvent.getArgs() may expose internal representation by returning SimEvent.args | MALICIOUS_CODE | EI_EXPOSE_REP | 111 | Medium |
| new nl.tudelft.simulation.dsol.formalisms.eventscheduling.SimEvent(Number, short, Object, String, Object[]) may expose internal representation by storing an externally mutable object into SimEvent.args | MALICIOUS_CODE | EI_EXPOSE_REP2 | 72 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| new nl.tudelft.simulation.dsol.formalisms.flow.Delay(Serializable, DevsSimulatorInterface, DistContinuousSimulationTime) may expose internal representation by storing an externally mutable object into Delay.delayDistribution | MALICIOUS_CODE | EI_EXPOSE_REP2 | 40 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| new nl.tudelft.simulation.dsol.formalisms.flow.Duplicate(Serializable, DevsSimulatorInterface, Station, int) may expose internal representation by storing an externally mutable object into Duplicate.duplicateDestination | MALICIOUS_CODE | EI_EXPOSE_REP2 | 55 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| nl.tudelft.simulation.dsol.formalisms.flow.Generate.getBatchSize() may expose internal representation by returning Generate.batchSize | MALICIOUS_CODE | EI_EXPOSE_REP | 152 | Medium |
| nl.tudelft.simulation.dsol.formalisms.flow.Generate.getInterval() may expose internal representation by returning Generate.interval | MALICIOUS_CODE | EI_EXPOSE_REP | 161 | Medium |
| nl.tudelft.simulation.dsol.formalisms.flow.Generate.getStartTime() may expose internal representation by returning Generate.startTime | MALICIOUS_CODE | EI_EXPOSE_REP | 206 | Medium |
| new nl.tudelft.simulation.dsol.formalisms.flow.Generate(Serializable, DevsSimulatorInterface, Class, Object[]) may expose internal representation by storing an externally mutable object into Generate.constructorArguments | MALICIOUS_CODE | EI_EXPOSE_REP2 | 96 | Medium |
| nl.tudelft.simulation.dsol.formalisms.flow.Generate.setBatchSize(DistDiscrete) may expose internal representation by storing an externally mutable object into Generate.batchSize | MALICIOUS_CODE | EI_EXPOSE_REP2 | 179 | Medium |
| nl.tudelft.simulation.dsol.formalisms.flow.Generate.setInterval(DistContinuousSimulationTime) may expose internal representation by storing an externally mutable object into Generate.interval | MALICIOUS_CODE | EI_EXPOSE_REP2 | 188 | Medium |
| nl.tudelft.simulation.dsol.formalisms.flow.Generate.setStartTime(DistContinuousSimulationTime) may expose internal representation by storing an externally mutable object into Generate.startTime | MALICIOUS_CODE | EI_EXPOSE_REP2 | 215 | Medium |
| Inconsistent synchronization of nl.tudelft.simulation.dsol.formalisms.flow.Generate.interval; locked 60% of time | MT_CORRECTNESS | IS2_INCONSISTENT_SYNC | 188 | Medium |
| nl.tudelft.simulation.dsol.formalisms.flow.Generate.getStartTime() is unsynchronized, nl.tudelft.simulation.dsol.formalisms.flow.Generate.setStartTime(DistContinuousSimulationTime) is synchronized | MT_CORRECTNESS | UG_SYNC_SET_UNSYNC_GET | 206 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| new nl.tudelft.simulation.dsol.formalisms.flow.Release(Serializable, DevsSimulatorInterface, Resource, double) may expose internal representation by storing an externally mutable object into Release.resource | MALICIOUS_CODE | EI_EXPOSE_REP2 | 54 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| nl.tudelft.simulation.dsol.formalisms.flow.ScheduledGenerate.getSchedule() is unsynchronized, nl.tudelft.simulation.dsol.formalisms.flow.ScheduledGenerate.setSchedule(SortedMap) is synchronized | MT_CORRECTNESS | UG_SYNC_SET_UNSYNC_GET | 64 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| nl.tudelft.simulation.dsol.formalisms.flow.Seize.getQueue() may expose internal representation by returning Seize.queue | MALICIOUS_CODE | EI_EXPOSE_REP | 129 | Medium |
| new nl.tudelft.simulation.dsol.formalisms.flow.Seize(Serializable, DevsSimulatorInterface, Resource, double) may expose internal representation by storing an externally mutable object into Seize.resource | MALICIOUS_CODE | EI_EXPOSE_REP2 | 79 | Medium |
| nl.tudelft.simulation.dsol.formalisms.flow.Seize.setQueue(List) may expose internal representation by storing an externally mutable object into Seize.queue | MALICIOUS_CODE | EI_EXPOSE_REP2 | 120 | Medium |
| Class nl.tudelft.simulation.dsol.formalisms.flow.Seize defines non-transient non-serializable instance field queue | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| nl.tudelft.simulation.dsol.formalisms.flow.Station.getDestination() may expose internal representation by returning Station.destination | MALICIOUS_CODE | EI_EXPOSE_REP | 97 | Medium |
| nl.tudelft.simulation.dsol.formalisms.flow.Station.getSimulator() may expose internal representation by returning Station.simulator | MALICIOUS_CODE | EI_EXPOSE_REP | 105 | Medium |
| new nl.tudelft.simulation.dsol.formalisms.flow.Station(Serializable, DevsSimulatorInterface) may expose internal representation by storing an externally mutable object into Station.simulator | MALICIOUS_CODE | EI_EXPOSE_REP2 | 57 | Medium |
| nl.tudelft.simulation.dsol.formalisms.flow.Station.setDestination(Station) may expose internal representation by storing an externally mutable object into Station.destination | MALICIOUS_CODE | EI_EXPOSE_REP2 | 75 | Medium |
| Inconsistent synchronization of nl.tudelft.simulation.dsol.formalisms.flow.Station.destination; locked 50% of time | MT_CORRECTNESS | IS2_INCONSISTENT_SYNC | 75 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| new nl.tudelft.simulation.dsol.logger.DefaultSimTimeFormatter(SimulatorInterface) may expose internal representation by storing an externally mutable object into DefaultSimTimeFormatter.simulator | MALICIOUS_CODE | EI_EXPOSE_REP2 | 27 | Medium |
| nl.tudelft.simulation.dsol.logger.DefaultSimTimeFormatter.setSimulator(SimulatorInterface) may expose internal representation by storing an externally mutable object into DefaultSimTimeFormatter.simulator | MALICIOUS_CODE | EI_EXPOSE_REP2 | 34 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Unread field: nl.tudelft.simulation.dsol.logger.SimLogger.defaultLevel | PERFORMANCE | URF_UNREAD_FIELD | 42 | Medium |
| Unread field: nl.tudelft.simulation.dsol.logger.SimLogger.defaultMessageFormat | PERFORMANCE | URF_UNREAD_FIELD | 39 | Medium |
| Unused field: nl.tudelft.simulation.dsol.logger.SimLogger.immutableLogCategories | PERFORMANCE | UUF_UNUSED_FIELD | Not available | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| nl.tudelft.simulation.dsol.model.AbstractDSOLModel.getInputParameterMap() may expose internal representation by returning AbstractDSOLModel.inputParameterMap | MALICIOUS_CODE | EI_EXPOSE_REP | 100 | Medium |
| nl.tudelft.simulation.dsol.model.AbstractDSOLModel.getOutputStatistics() may expose internal representation by returning AbstractDSOLModel.outputStatistics | MALICIOUS_CODE | EI_EXPOSE_REP | 129 | Medium |
| nl.tudelft.simulation.dsol.model.AbstractDSOLModel.getSimulator() may expose internal representation by returning AbstractDSOLModel.simulator | MALICIOUS_CODE | EI_EXPOSE_REP | 93 | Medium |
| nl.tudelft.simulation.dsol.model.AbstractDSOLModel.getStreamInformation() may expose internal representation by returning AbstractDSOLModel.streamInformation | MALICIOUS_CODE | EI_EXPOSE_REP | 86 | Medium |
| new nl.tudelft.simulation.dsol.model.AbstractDSOLModel(SimulatorInterface, StreamInformation) may expose internal representation by storing an externally mutable object into AbstractDSOLModel.simulator | MALICIOUS_CODE | EI_EXPOSE_REP2 | 70 | Medium |
| nl.tudelft.simulation.dsol.model.AbstractDSOLModel.setStreamInformation(StreamInformation) may expose internal representation by storing an externally mutable object into AbstractDSOLModel.streamInformation | MALICIOUS_CODE | EI_EXPOSE_REP2 | 79 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| nl.tudelft.simulation.dsol.model.inputparameters.AbstractInputParameter.getParent() may expose internal representation by returning AbstractInputParameter.parent | MALICIOUS_CODE | EI_EXPOSE_REP | 176 | Medium |
| nl.tudelft.simulation.dsol.model.inputparameters.AbstractInputParameter.setParent(AbstractInputParameterMap) may expose internal representation by storing an externally mutable object into AbstractInputParameter.parent | MALICIOUS_CODE | EI_EXPOSE_REP2 | 169 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Overridable method isReadOnly is called from method clone() in class nl.tudelft.simulation.dsol.model.inputparameters.AbstractInputParameterMap. | MALICIOUS_CODE | MC_OVERRIDABLE_METHOD_CALL_IN_CLONE | 126 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| nl.tudelft.simulation.dsol.model.inputparameters.AbstractInputParameterMap$InputParameterComparator.compare(InputParameter, InputParameter) incorrectly handles double value | BAD_PRACTICE | CO_COMPARETO_INCORRECT_FLOATING | 219 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| nl.tudelft.simulation.dsol.model.inputparameters.InputParameterDistContinuous.getStream() may expose internal representation by returning InputParameterDistContinuous.stream | MALICIOUS_CODE | EI_EXPOSE_REP | 57 | Medium |
| new nl.tudelft.simulation.dsol.model.inputparameters.InputParameterDistContinuous(String, String, String, StreamInterface, DistContinuous, double) may expose internal representation by storing an externally mutable object into InputParameterDistContinuous.stream | MALICIOUS_CODE | EI_EXPOSE_REP2 | 42 | Medium |
| nl.tudelft.simulation.dsol.model.inputparameters.InputParameterDistContinuous.setStream(StreamInterface) may expose internal representation by storing an externally mutable object into InputParameterDistContinuous.stream | MALICIOUS_CODE | EI_EXPOSE_REP2 | 67 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| nl.tudelft.simulation.dsol.model.inputparameters.InputParameterDistContinuousSelection.getStream() may expose internal representation by returning InputParameterDistContinuousSelection.stream | MALICIOUS_CODE | EI_EXPOSE_REP | 114 | Medium |
| new nl.tudelft.simulation.dsol.model.inputparameters.InputParameterDistContinuousSelection(String, String, String, StreamInterface, double) may expose internal representation by storing an externally mutable object into InputParameterDistContinuousSelection.stream | MALICIOUS_CODE | EI_EXPOSE_REP2 | 84 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| nl.tudelft.simulation.dsol.model.inputparameters.InputParameterDistDiscrete.getStream() may expose internal representation by returning InputParameterDistDiscrete.stream | MALICIOUS_CODE | EI_EXPOSE_REP | 58 | Medium |
| new nl.tudelft.simulation.dsol.model.inputparameters.InputParameterDistDiscrete(String, String, String, StreamInterface, DistDiscrete, double) may expose internal representation by storing an externally mutable object into InputParameterDistDiscrete.stream | MALICIOUS_CODE | EI_EXPOSE_REP2 | 43 | Medium |
| nl.tudelft.simulation.dsol.model.inputparameters.InputParameterDistDiscrete.setStream(StreamInterface) may expose internal representation by storing an externally mutable object into InputParameterDistDiscrete.stream | MALICIOUS_CODE | EI_EXPOSE_REP2 | 68 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| nl.tudelft.simulation.dsol.model.inputparameters.InputParameterDistDiscreteSelection.getStream() may expose internal representation by returning InputParameterDistDiscreteSelection.stream | MALICIOUS_CODE | EI_EXPOSE_REP | 104 | Medium |
| new nl.tudelft.simulation.dsol.model.inputparameters.InputParameterDistDiscreteSelection(String, String, String, StreamInterface, double) may expose internal representation by storing an externally mutable object into InputParameterDistDiscreteSelection.stream | MALICIOUS_CODE | EI_EXPOSE_REP2 | 74 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| nl.tudelft.simulation.dsol.model.inputparameters.InputParameterMapDistContinuous.getDist() may expose internal representation by returning InputParameterMapDistContinuous.dist | MALICIOUS_CODE | EI_EXPOSE_REP | 58 | Medium |
| nl.tudelft.simulation.dsol.model.inputparameters.InputParameterMapDistContinuous.getStream() may expose internal representation by returning InputParameterMapDistContinuous.stream | MALICIOUS_CODE | EI_EXPOSE_REP | 66 | Medium |
| nl.tudelft.simulation.dsol.model.inputparameters.InputParameterMapDistContinuous.setStream(StreamInterface) may expose internal representation by storing an externally mutable object into InputParameterMapDistContinuous.stream | MALICIOUS_CODE | EI_EXPOSE_REP2 | 74 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| nl.tudelft.simulation.dsol.model.inputparameters.InputParameterMapDistDiscrete.getDist() may expose internal representation by returning InputParameterMapDistDiscrete.dist | MALICIOUS_CODE | EI_EXPOSE_REP | 58 | Medium |
| nl.tudelft.simulation.dsol.model.inputparameters.InputParameterMapDistDiscrete.getStream() may expose internal representation by returning InputParameterMapDistDiscrete.stream | MALICIOUS_CODE | EI_EXPOSE_REP | 66 | Medium |
| nl.tudelft.simulation.dsol.model.inputparameters.InputParameterMapDistDiscrete.setStream(StreamInterface) may expose internal representation by storing an externally mutable object into InputParameterMapDistDiscrete.stream | MALICIOUS_CODE | EI_EXPOSE_REP2 | 74 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| nl.tudelft.simulation.dsol.model.inputparameters.InputParameterSelectionList.getOptions() may expose internal representation by returning InputParameterSelectionList.options | MALICIOUS_CODE | EI_EXPOSE_REP | 83 | Medium |
| Overridable method isReadOnly is called from method clone() in class nl.tudelft.simulation.dsol.model.inputparameters.InputParameterSelectionList. | MALICIOUS_CODE | MC_OVERRIDABLE_METHOD_CALL_IN_CLONE | 152 | Medium |
| Useless object stored in variable clonedList of method nl.tudelft.simulation.dsol.model.inputparameters.InputParameterSelectionList.clone() | STYLE | UC_USELESS_OBJECT | 137 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Overridable method isReadOnly is called from method clone() in class nl.tudelft.simulation.dsol.model.inputparameters.InputParameterSelectionMap. | MALICIOUS_CODE | MC_OVERRIDABLE_METHOD_CALL_IN_CLONE | 159 | Medium |
| Null passed for non-null parameter of java.util.SortedMap.get(Object) in nl.tudelft.simulation.dsol.model.inputparameters.InputParameterSelectionMap.setKeyforValue(Object) | CORRECTNESS | NP_NULL_PARAM_DEREF | 134 | Medium |
| Useless object stored in variable clonedMap of method nl.tudelft.simulation.dsol.model.inputparameters.InputParameterSelectionMap.clone() | STYLE | UC_USELESS_OBJECT | 143 | Medium |
| nl.tudelft.simulation.dsol.model.inputparameters.InputParameterSelectionMap.clone() makes inefficient use of keySet iterator instead of entrySet iterator | PERFORMANCE | WMI_WRONG_MAP_ITERATOR | 146 | Medium |
| nl.tudelft.simulation.dsol.model.inputparameters.InputParameterSelectionMap.getKeyforValue(Object) makes inefficient use of keySet iterator instead of entrySet iterator | PERFORMANCE | WMI_WRONG_MAP_ITERATOR | 87 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Boxing/unboxing to parse a primitive nl.tudelft.simulation.dsol.model.inputparameters.reader.ReadInputParameters.setParameter(InputParameter, String) | PERFORMANCE | DM_BOXED_PRIMITIVE_FOR_PARSING | 279 | High |
| Boxing/unboxing to parse a primitive nl.tudelft.simulation.dsol.model.inputparameters.reader.ReadInputParameters.setParameter(InputParameter, String) | PERFORMANCE | DM_BOXED_PRIMITIVE_FOR_PARSING | 284 | High |
| Boxing/unboxing to parse a primitive nl.tudelft.simulation.dsol.model.inputparameters.reader.ReadInputParameters.setParameter(InputParameter, String) | PERFORMANCE | DM_BOXED_PRIMITIVE_FOR_PARSING | 294 | High |
| Boxing/unboxing to parse a primitive nl.tudelft.simulation.dsol.model.inputparameters.reader.ReadInputParameters.setParameter(InputParameter, String) | PERFORMANCE | DM_BOXED_PRIMITIVE_FOR_PARSING | 299 | High |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| new nl.tudelft.simulation.dsol.simulators.AnimatorInterface$AnimationThread(AnimatorInterface) may expose internal representation by storing an externally mutable object into AnimatorInterface$AnimationThread.animator | MALICIOUS_CODE | EI_EXPOSE_REP2 | 77 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Synchronization on Boolean in nl.tudelft.simulation.dsol.simulators.DevsRealTimeAnimator.run() | MT_CORRECTNESS | DL_SYNCHRONIZATION_ON_BOOLEAN | 90 | High |
| Synchronization on Boolean in nl.tudelft.simulation.dsol.simulators.DevsRealTimeAnimator.setAnimation(boolean) | MT_CORRECTNESS | DL_SYNCHRONIZATION_ON_BOOLEAN | 335 | High |
| Using floating-point loop counters can lead to unexpected behavior. | CORRECTNESS | FL_FLOATS_AS_LOOP_COUNTERS | 181 | Medium |
| Synchronization on DevsRealTimeAnimator.animation in futile attempt to guard it | MT_CORRECTNESS | ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD | 357 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| nl.tudelft.simulation.dsol.simulators.DevsSimulator.getEventList() may expose internal representation by returning DevsSimulator.eventList | MALICIOUS_CODE | EI_EXPOSE_REP | 62 | Medium |
| nl.tudelft.simulation.dsol.simulators.DevsSimulator.setEventList(EventListInterface) may expose internal representation by storing an externally mutable object into DevsSimulator.eventList | MALICIOUS_CODE | EI_EXPOSE_REP2 | 218 | Medium |
| nl.tudelft.simulation.dsol.simulators.DevsSimulator.getEventList() is unsynchronized, nl.tudelft.simulation.dsol.simulators.DevsSimulator.setEventList(EventListInterface) is synchronized | MT_CORRECTNESS | UG_SYNC_SET_UNSYNC_GET | 62 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| nl.tudelft.simulation.dsol.simulators.Simulator.handleSimulationException(Exception) invokes System.exit(...), which shuts down the entire virtual machine | BAD_PRACTICE | DM_EXIT | 447 | Medium |
| nl.tudelft.simulation.dsol.simulators.Simulator.getLogger() may expose internal representation by returning Simulator.logger | MALICIOUS_CODE | EI_EXPOSE_REP | 488 | Medium |
| nl.tudelft.simulation.dsol.simulators.Simulator.getModel() may expose internal representation by returning Simulator.model | MALICIOUS_CODE | EI_EXPOSE_REP | 481 | Medium |
| nl.tudelft.simulation.dsol.simulators.Simulator.getReplication() may expose internal representation by returning Simulator.replication | MALICIOUS_CODE | EI_EXPOSE_REP | 474 | Medium |
| nl.tudelft.simulation.dsol.simulators.Simulator.initialize(DSOLModel, Replication) may expose internal representation by storing an externally mutable object into Simulator.model | MALICIOUS_CODE | EI_EXPOSE_REP2 | 123 | Medium |
| nl.tudelft.simulation.dsol.simulators.Simulator.initialize(DSOLModel, Replication) may expose internal representation by storing an externally mutable object into Simulator.replication | MALICIOUS_CODE | EI_EXPOSE_REP2 | 122 | Medium |
| nl.tudelft.simulation.dsol.simulators.Simulator's readObject method is synchronized | MT_CORRECTNESS | RS_READOBJECT_SYNC | 536-547 | Medium |
| nl.tudelft.simulation.dsol.simulators.Simulator.startImpl() calls Thread.sleep() with a lock held | MT_CORRECTNESS | SWL_SLEEP_WITH_LOCK_HELD | 191 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| nl.tudelft.simulation.dsol.statistics.SimCounter.getSimulator() may expose internal representation by returning SimCounter.simulator | MALICIOUS_CODE | EI_EXPOSE_REP | 169 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| nl.tudelft.simulation.dsol.statistics.SimPersistent.getSimulator() may expose internal representation by returning SimPersistent.simulator | MALICIOUS_CODE | EI_EXPOSE_REP | 185 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| nl.tudelft.simulation.dsol.statistics.SimTally.getSimulator() may expose internal representation by returning SimTally.simulator | MALICIOUS_CODE | EI_EXPOSE_REP | 177 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| nl.tudelft.simulation.jstats.distributions.Dist.getStream() may expose internal representation by returning Dist.stream | MALICIOUS_CODE | EI_EXPOSE_REP | 45 | Medium |
| new nl.tudelft.simulation.jstats.distributions.Dist(StreamInterface) may expose internal representation by storing an externally mutable object into Dist.stream | MALICIOUS_CODE | EI_EXPOSE_REP2 | 36 | Medium |
| nl.tudelft.simulation.jstats.distributions.Dist.setStream(StreamInterface) may expose internal representation by storing an externally mutable object into Dist.stream | MALICIOUS_CODE | EI_EXPOSE_REP2 | 56 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Inconsistent synchronization of nl.tudelft.simulation.jstats.distributions.DistNormal.haveNextNextGaussian; locked 75% of time | MT_CORRECTNESS | IS2_INCONSISTENT_SYNC | 149 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| nl.tudelft.simulation.jstats.math.ProbMath.FACTORIAL_DOUBLE should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | 33 | Medium |
| nl.tudelft.simulation.jstats.math.ProbMath.FACTORIAL_LONG should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | 42 | Medium |
| nl.tudelft.simulation.jstats.math.ProbMath.POW2_DOUBLE should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | 51 | Medium |
| nl.tudelft.simulation.jstats.math.ProbMath.POW2_LONG should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | 58 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| nl.tudelft.simulation.jstats.ode.DifferentialEquation.getIntegrator() may expose internal representation by returning DifferentialEquation.integrator | MALICIOUS_CODE | EI_EXPOSE_REP | 128 | Medium |
| nl.tudelft.simulation.jstats.ode.DifferentialEquation.y(double) may expose internal representation by returning DifferentialEquation.lastY | MALICIOUS_CODE | EI_EXPOSE_REP | 72 | Medium |
| nl.tudelft.simulation.jstats.ode.DifferentialEquation.initialize(double, double[]) may expose internal representation by storing an externally mutable object into DifferentialEquation.lastY | MALICIOUS_CODE | EI_EXPOSE_REP2 | 57 | Medium |
| nl.tudelft.simulation.jstats.ode.DifferentialEquation.setIntegrator(NumericalIntegrator) may expose internal representation by storing an externally mutable object into DifferentialEquation.integrator | MALICIOUS_CODE | EI_EXPOSE_REP2 | 136 | Medium |
| Using floating-point loop counters can lead to unexpected behavior. | CORRECTNESS | FL_FLOATS_AS_LOOP_COUNTERS | 96 | Medium |
| Using floating-point loop counters can lead to unexpected behavior. | CORRECTNESS | FL_FLOATS_AS_LOOP_COUNTERS | 104 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| nl.tudelft.simulation.jstats.ode.integrators.NumericalIntegrator.getError() may expose internal representation by returning NumericalIntegrator.error | MALICIOUS_CODE | EI_EXPOSE_REP | 183 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| nl.tudelft.simulation.jstats.ode.integrators.RungeKuttaCashCarp.a should be both final and package protected | MALICIOUS_CODE | MS_FINAL_PKGPROTECT | 23 | Medium |
| nl.tudelft.simulation.jstats.ode.integrators.RungeKuttaCashCarp.b should be both final and package protected | MALICIOUS_CODE | MS_FINAL_PKGPROTECT | 27 | Medium |
| nl.tudelft.simulation.jstats.ode.integrators.RungeKuttaCashCarp.c should be both final and package protected | MALICIOUS_CODE | MS_FINAL_PKGPROTECT | 34 | Medium |
| nl.tudelft.simulation.jstats.ode.integrators.RungeKuttaCashCarp.c4 should be both final and package protected | MALICIOUS_CODE | MS_FINAL_PKGPROTECT | 38 | Medium |
| nl.tudelft.simulation.jstats.ode.integrators.RungeKuttaCashCarp.nk isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 42 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| nl.tudelft.simulation.jstats.ode.integrators.RungeKuttaFehlberg.a should be both final and package protected | MALICIOUS_CODE | MS_FINAL_PKGPROTECT | 23 | Medium |
| nl.tudelft.simulation.jstats.ode.integrators.RungeKuttaFehlberg.b should be both final and package protected | MALICIOUS_CODE | MS_FINAL_PKGPROTECT | 27 | Medium |
| nl.tudelft.simulation.jstats.ode.integrators.RungeKuttaFehlberg.c should be both final and package protected | MALICIOUS_CODE | MS_FINAL_PKGPROTECT | 34 | Medium |
| nl.tudelft.simulation.jstats.ode.integrators.RungeKuttaFehlberg.c4 should be both final and package protected | MALICIOUS_CODE | MS_FINAL_PKGPROTECT | 38 | Medium |
| nl.tudelft.simulation.jstats.ode.integrators.RungeKuttaFehlberg.nk isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 42 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| nl.tudelft.simulation.jstats.streams.Java2Random.getSeed() is unsynchronized, nl.tudelft.simulation.jstats.streams.Java2Random.setSeed(long) is synchronized | MT_CORRECTNESS | UG_SYNC_SET_UNSYNC_GET | 86 | Medium |