В настоящее время у нас есть проблема с хранилищем AGV, работающая на RinSim.Иногда во время выполнения мы получаем следующую ошибку:
Exception in thread "main" java.lang.NullPointerException
at com.github.rinde.rinsim.core.model.road.GraphSpatialRegistry.getConnection(GraphSpatialRegistry.java:133)
at com.github.rinde.rinsim.core.model.road.GraphRoadModelImpl.getConnection(GraphRoadModelImpl.java:478)
at com.github.rinde.rinsim.ui.renderers.AGVRenderer$VehicleUI.update(AGVRenderer.java:294)
at com.github.rinde.rinsim.ui.renderers.AGVRenderer.renderDynamic(AGVRenderer.java:98)
at com.github.rinde.rinsim.ui.SimulationViewer.paintControl(SimulationViewer.java:492)
at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)
at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Display.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Composite.WM_PAINT(Unknown Source)
at org.eclipse.swt.widgets.Control.windowProc(Unknown Source)
at org.eclipse.swt.widgets.Canvas.windowProc(Unknown Source)
at org.eclipse.swt.widgets.Display.windowProc(Unknown Source)
at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
at org.eclipse.swt.internal.win32.OS.DispatchMessage(Unknown Source)
at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
at com.github.rinde.rinsim.ui.View.show(View.java:153)
at com.github.rinde.rinsim.core.Simulator.start(Simulator.java:186)
at Environment.run(Environment.java:136)
at Environment.main(Environment.java:61)
Эта ошибка не возникает при каждом выполнении, не говоря уже об одной и той же точке (что, по нашему мнению, имеет место для обычных ошибок, поскольку мы используем RandomGenerator
для каждого «случайного»).Код из нашего Viewbuilder
:
View.Builder viewBuilder = View.builder()
.with(WarehouseRenderer.builder()
.withMargin(VEHICLE_LENGTH))
.with(AGVRenderer.builder()
.withDifferentColorsForVehicles())
.with(PDPModelRenderer.builder().withDestinationLines());