SpotBugs Bug Detector Report

The following document contains the results of SpotBugs

SpotBugs Version is 4.7.1

Threshold is medium

Effort is default

Summary

Classes Bugs Errors Missing Classes
274 167 0 0

Files

Class Bugs
nl.tudelft.simulation.dsol.animation.Editable 5
nl.tudelft.simulation.dsol.eventlists.TableModelEventList 2
nl.tudelft.simulation.dsol.experiment.Experiment 7
nl.tudelft.simulation.dsol.experiment.Experiment$ExperimentThread 1
nl.tudelft.simulation.dsol.experiment.ExperimentReplication 2
nl.tudelft.simulation.dsol.experiment.Replication 2
nl.tudelft.simulation.dsol.experiment.StreamInformation 1
nl.tudelft.simulation.dsol.experiment.StreamSeedInformation 1
nl.tudelft.simulation.dsol.experiment.StreamSeedUpdater 1
nl.tudelft.simulation.dsol.formalisms.Resource 3
nl.tudelft.simulation.dsol.formalisms.Resource$RequestComparator 1
nl.tudelft.simulation.dsol.formalisms.dess.DifferentialEquation 3
nl.tudelft.simulation.dsol.formalisms.devs.esdevs.AbstractDevsModel 5
nl.tudelft.simulation.dsol.formalisms.devs.esdevs.AbstractDevsPortModel 2
nl.tudelft.simulation.dsol.formalisms.devs.esdevs.AtomicModel 2
nl.tudelft.simulation.dsol.formalisms.devs.esdevs.CoupledModel 6
nl.tudelft.simulation.dsol.formalisms.devs.esdevs.InputPort 4
nl.tudelft.simulation.dsol.formalisms.devs.esdevs.OutputPort 3
nl.tudelft.simulation.dsol.formalisms.devs.esdevs.Phase 1
nl.tudelft.simulation.dsol.formalisms.eventscheduling.LambdaSimEvent 1
nl.tudelft.simulation.dsol.formalisms.eventscheduling.SimEvent 2
nl.tudelft.simulation.dsol.formalisms.flow.Create 8
nl.tudelft.simulation.dsol.formalisms.flow.Delay 1
nl.tudelft.simulation.dsol.formalisms.flow.Duplicate 1
nl.tudelft.simulation.dsol.formalisms.flow.Entity 1
nl.tudelft.simulation.dsol.formalisms.flow.FlowObject 6
nl.tudelft.simulation.dsol.formalisms.flow.Release 1
nl.tudelft.simulation.dsol.formalisms.flow.Seize 4
nl.tudelft.simulation.dsol.formalisms.flow.Seize$Request 2
nl.tudelft.simulation.dsol.logger.DefaultSimTimeFormatter 2
nl.tudelft.simulation.dsol.logger.SimLogger 3
nl.tudelft.simulation.dsol.model.AbstractDsolModel 6
nl.tudelft.simulation.dsol.model.inputparameters.AbstractInputParameter 2
nl.tudelft.simulation.dsol.model.inputparameters.AbstractInputParameterMap 1
nl.tudelft.simulation.dsol.model.inputparameters.AbstractInputParameterMap$InputParameterComparator 1
nl.tudelft.simulation.dsol.model.inputparameters.InputParameterDistContinuous 3
nl.tudelft.simulation.dsol.model.inputparameters.InputParameterDistContinuousSelection 2
nl.tudelft.simulation.dsol.model.inputparameters.InputParameterDistDiscrete 3
nl.tudelft.simulation.dsol.model.inputparameters.InputParameterDistDiscreteSelection 2
nl.tudelft.simulation.dsol.model.inputparameters.InputParameterMapDistContinuous 3
nl.tudelft.simulation.dsol.model.inputparameters.InputParameterMapDistDiscrete 3
nl.tudelft.simulation.dsol.model.inputparameters.InputParameterSelectionList 3
nl.tudelft.simulation.dsol.model.inputparameters.InputParameterSelectionMap 5
nl.tudelft.simulation.dsol.model.inputparameters.reader.ReadInputParameters 4
nl.tudelft.simulation.dsol.simulators.AnimatorInterface$AnimationThread 1
nl.tudelft.simulation.dsol.simulators.DevsRealTimeAnimator 4
nl.tudelft.simulation.dsol.simulators.DevsSimulator 3
nl.tudelft.simulation.dsol.simulators.Simulator 8
nl.tudelft.simulation.dsol.statistics.SimCounter 1
nl.tudelft.simulation.dsol.statistics.SimPersistent 1
nl.tudelft.simulation.dsol.statistics.SimTally 1
nl.tudelft.simulation.jstats.distributions.Dist 3
nl.tudelft.simulation.jstats.distributions.DistNormal 1
nl.tudelft.simulation.jstats.math.ProbMath 4
nl.tudelft.simulation.jstats.ode.DifferentialEquation 6
nl.tudelft.simulation.jstats.ode.integrators.NumericalIntegrator 1
nl.tudelft.simulation.jstats.ode.integrators.RungeKuttaCashCarp 5
nl.tudelft.simulation.jstats.ode.integrators.RungeKuttaFehlberg 5
nl.tudelft.simulation.jstats.streams.Java2Random 1

nl.tudelft.simulation.dsol.animation.Editable

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

nl.tudelft.simulation.dsol.eventlists.TableModelEventList

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

nl.tudelft.simulation.dsol.experiment.Experiment

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

nl.tudelft.simulation.dsol.experiment.Experiment$ExperimentThread

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

nl.tudelft.simulation.dsol.experiment.ExperimentReplication

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

nl.tudelft.simulation.dsol.experiment.Replication

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

nl.tudelft.simulation.dsol.experiment.StreamInformation

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

nl.tudelft.simulation.dsol.experiment.StreamSeedInformation

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

nl.tudelft.simulation.dsol.experiment.StreamSeedUpdater

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

nl.tudelft.simulation.dsol.formalisms.Resource

Bug Category Details Line Priority
new nl.tudelft.simulation.dsol.formalisms.Resource(String, DevsSimulatorInterface, double, Comparator) may expose internal representation by storing an externally mutable object into Resource.simulator MALICIOUS_CODE EI_EXPOSE_REP2 95 Medium
Inconsistent synchronization of nl.tudelft.simulation.dsol.formalisms.Resource.claimedCapacity; locked 57% of time MT_CORRECTNESS IS2_INCONSISTENT_SYNC 133 Medium
Class nl.tudelft.simulation.dsol.formalisms.Resource defines non-transient non-serializable instance field requests BAD_PRACTICE SE_BAD_FIELD Not available Medium

nl.tudelft.simulation.dsol.formalisms.Resource$RequestComparator

Bug Category Details Line Priority
nl.tudelft.simulation.dsol.formalisms.Resource$RequestComparator implements Comparator but not Serializable BAD_PRACTICE SE_COMPARATOR_SHOULD_BE_SERIALIZABLE 278-300 Medium

nl.tudelft.simulation.dsol.formalisms.dess.DifferentialEquation

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

nl.tudelft.simulation.dsol.formalisms.devs.esdevs.AbstractDevsModel

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

nl.tudelft.simulation.dsol.formalisms.devs.esdevs.AbstractDevsPortModel

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

nl.tudelft.simulation.dsol.formalisms.devs.esdevs.AtomicModel

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

nl.tudelft.simulation.dsol.formalisms.devs.esdevs.CoupledModel

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

nl.tudelft.simulation.dsol.formalisms.devs.esdevs.InputPort

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

nl.tudelft.simulation.dsol.formalisms.devs.esdevs.OutputPort

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

nl.tudelft.simulation.dsol.formalisms.devs.esdevs.Phase

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

nl.tudelft.simulation.dsol.formalisms.eventscheduling.LambdaSimEvent

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

nl.tudelft.simulation.dsol.formalisms.eventscheduling.SimEvent

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

nl.tudelft.simulation.dsol.formalisms.flow.Create

Bug Category Details Line Priority
nl.tudelft.simulation.dsol.formalisms.flow.Create.getBatchSize() may expose internal representation by returning Create.batchSize MALICIOUS_CODE EI_EXPOSE_REP 230 Medium
nl.tudelft.simulation.dsol.formalisms.flow.Create.getInterval() may expose internal representation by returning Create.interval MALICIOUS_CODE EI_EXPOSE_REP 239 Medium
nl.tudelft.simulation.dsol.formalisms.flow.Create.getStartTime() may expose internal representation by returning Create.startTime MALICIOUS_CODE EI_EXPOSE_REP 288 Medium
new nl.tudelft.simulation.dsol.formalisms.flow.Create(String, DevsSimulatorInterface, DistContinuousSimulationTime, int) may expose internal representation by storing an externally mutable object into Create.interval MALICIOUS_CODE EI_EXPOSE_REP2 165 Medium
new nl.tudelft.simulation.dsol.formalisms.flow.Create(String, DevsSimulatorInterface, DistContinuousSimulationTime, DistContinuousSimulationTime, DistDiscrete) may expose internal representation by storing an externally mutable object into Create.batchSize MALICIOUS_CODE EI_EXPOSE_REP2 85 Medium
new nl.tudelft.simulation.dsol.formalisms.flow.Create(String, DevsSimulatorInterface, DistContinuousSimulationTime, DistContinuousSimulationTime, DistDiscrete) may expose internal representation by storing an externally mutable object into Create.interval MALICIOUS_CODE EI_EXPOSE_REP2 84 Medium
new nl.tudelft.simulation.dsol.formalisms.flow.Create(String, DevsSimulatorInterface, DistContinuousSimulationTime, DistContinuousSimulationTime, DistDiscrete) may expose internal representation by storing an externally mutable object into Create.startTime MALICIOUS_CODE EI_EXPOSE_REP2 83 Medium
nl.tudelft.simulation.dsol.formalisms.flow.Create.setInterval(DistContinuousSimulationTime) may expose internal representation by storing an externally mutable object into Create.interval MALICIOUS_CODE EI_EXPOSE_REP2 250 Medium

nl.tudelft.simulation.dsol.formalisms.flow.Delay

Bug Category Details Line Priority
new nl.tudelft.simulation.dsol.formalisms.flow.Delay(String, DevsSimulatorInterface, DistContinuousSimulationTime) may expose internal representation by storing an externally mutable object into Delay.delayDistribution MALICIOUS_CODE EI_EXPOSE_REP2 41 Medium

nl.tudelft.simulation.dsol.formalisms.flow.Duplicate

Bug Category Details Line Priority
new nl.tudelft.simulation.dsol.formalisms.flow.Duplicate(String, DevsSimulatorInterface, FlowObject, int) may expose internal representation by storing an externally mutable object into Duplicate.duplicateDestination MALICIOUS_CODE EI_EXPOSE_REP2 51 Medium

nl.tudelft.simulation.dsol.formalisms.flow.Entity

Bug Category Details Line Priority
nl.tudelft.simulation.dsol.formalisms.flow.Entity defines clone() but doesn't implement Cloneable BAD_PRACTICE CN_IMPLEMENTS_CLONE_BUT_NOT_CLONEABLE 57-62 High

nl.tudelft.simulation.dsol.formalisms.flow.FlowObject

Bug Category Details Line Priority
nl.tudelft.simulation.dsol.formalisms.flow.FlowObject.getDestination() may expose internal representation by returning FlowObject.destination MALICIOUS_CODE EI_EXPOSE_REP 104 Medium
nl.tudelft.simulation.dsol.formalisms.flow.FlowObject.getSimulator() may expose internal representation by returning FlowObject.simulator MALICIOUS_CODE EI_EXPOSE_REP 113 Medium
new nl.tudelft.simulation.dsol.formalisms.flow.FlowObject(String, DevsSimulatorInterface) may expose internal representation by storing an externally mutable object into FlowObject.simulator MALICIOUS_CODE EI_EXPOSE_REP2 60 Medium
nl.tudelft.simulation.dsol.formalisms.flow.FlowObject.setDestination(FlowObject) may expose internal representation by storing an externally mutable object into FlowObject.destination MALICIOUS_CODE EI_EXPOSE_REP2 80 Medium
Inconsistent synchronization of nl.tudelft.simulation.dsol.formalisms.flow.FlowObject.destination; locked 50% of time MT_CORRECTNESS IS2_INCONSISTENT_SYNC 80 Medium
Inconsistent synchronization of nl.tudelft.simulation.dsol.formalisms.flow.FlowObject.numberEntities; locked 50% of time MT_CORRECTNESS IS2_INCONSISTENT_SYNC 69 Medium

nl.tudelft.simulation.dsol.formalisms.flow.Release

Bug Category Details Line Priority
new nl.tudelft.simulation.dsol.formalisms.flow.Release(String, DevsSimulatorInterface, Resource, double) may expose internal representation by storing an externally mutable object into Release.resource MALICIOUS_CODE EI_EXPOSE_REP2 51 Medium

nl.tudelft.simulation.dsol.formalisms.flow.Seize

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 134 Medium
new nl.tudelft.simulation.dsol.formalisms.flow.Seize(String, DevsSimulatorInterface, Resource, double) may expose internal representation by storing an externally mutable object into Seize.resource MALICIOUS_CODE EI_EXPOSE_REP2 84 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 125 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

nl.tudelft.simulation.dsol.formalisms.flow.Seize$Request

Bug Category Details Line Priority
nl.tudelft.simulation.dsol.formalisms.flow.Seize$Request.getEntity() may expose internal representation by returning Seize$Request.entity MALICIOUS_CODE EI_EXPOSE_REP 202 Medium
new nl.tudelft.simulation.dsol.formalisms.flow.Seize$Request(Entity, double, Number) may expose internal representation by storing an externally mutable object into Seize$Request.entity MALICIOUS_CODE EI_EXPOSE_REP2 182 Medium

nl.tudelft.simulation.dsol.logger.DefaultSimTimeFormatter

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

nl.tudelft.simulation.dsol.logger.SimLogger

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

nl.tudelft.simulation.dsol.model.AbstractDsolModel

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

nl.tudelft.simulation.dsol.model.inputparameters.AbstractInputParameter

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

nl.tudelft.simulation.dsol.model.inputparameters.AbstractInputParameterMap

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

nl.tudelft.simulation.dsol.model.inputparameters.AbstractInputParameterMap$InputParameterComparator

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

nl.tudelft.simulation.dsol.model.inputparameters.InputParameterDistContinuous

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

nl.tudelft.simulation.dsol.model.inputparameters.InputParameterDistContinuousSelection

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

nl.tudelft.simulation.dsol.model.inputparameters.InputParameterDistDiscrete

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

nl.tudelft.simulation.dsol.model.inputparameters.InputParameterDistDiscreteSelection

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

nl.tudelft.simulation.dsol.model.inputparameters.InputParameterMapDistContinuous

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

nl.tudelft.simulation.dsol.model.inputparameters.InputParameterMapDistDiscrete

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

nl.tudelft.simulation.dsol.model.inputparameters.InputParameterSelectionList

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

nl.tudelft.simulation.dsol.model.inputparameters.InputParameterSelectionMap

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

nl.tudelft.simulation.dsol.model.inputparameters.reader.ReadInputParameters

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 272 High
Boxing/unboxing to parse a primitive nl.tudelft.simulation.dsol.model.inputparameters.reader.ReadInputParameters.setParameter(InputParameter, String) PERFORMANCE DM_BOXED_PRIMITIVE_FOR_PARSING 277 High
Boxing/unboxing to parse a primitive nl.tudelft.simulation.dsol.model.inputparameters.reader.ReadInputParameters.setParameter(InputParameter, String) PERFORMANCE DM_BOXED_PRIMITIVE_FOR_PARSING 287 High
Boxing/unboxing to parse a primitive nl.tudelft.simulation.dsol.model.inputparameters.reader.ReadInputParameters.setParameter(InputParameter, String) PERFORMANCE DM_BOXED_PRIMITIVE_FOR_PARSING 292 High

nl.tudelft.simulation.dsol.simulators.AnimatorInterface$AnimationThread

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

nl.tudelft.simulation.dsol.simulators.DevsRealTimeAnimator

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

nl.tudelft.simulation.dsol.simulators.DevsSimulator

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

nl.tudelft.simulation.dsol.simulators.Simulator

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

nl.tudelft.simulation.dsol.statistics.SimCounter

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

nl.tudelft.simulation.dsol.statistics.SimPersistent

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

nl.tudelft.simulation.dsol.statistics.SimTally

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

nl.tudelft.simulation.jstats.distributions.Dist

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

nl.tudelft.simulation.jstats.distributions.DistNormal

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

nl.tudelft.simulation.jstats.math.ProbMath

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

nl.tudelft.simulation.jstats.ode.DifferentialEquation

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

nl.tudelft.simulation.jstats.ode.integrators.NumericalIntegrator

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

nl.tudelft.simulation.jstats.ode.integrators.RungeKuttaCashCarp

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

nl.tudelft.simulation.jstats.ode.integrators.RungeKuttaFehlberg

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

nl.tudelft.simulation.jstats.streams.Java2Random

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