-
Bug
-
Resolution: Done
-
Major
-
None
-
None
-
NEW
-
NEW
To reproduce:
- change vehicle routing solver config to FULL_ASSERT
- load any time windowed datset (import or open)
- start solving
Caused by: java.lang.IllegalStateException: VariableListener corruption: the entity (TimeWindowedCustomer-1)'s shadow variable (TimeWindowedCustomer.arrivalTime)'s corrupted value (null) changed to uncorrupted value (512000) after all VariableListeners were triggered without changes to the genuine variables. Probably the VariableListener class for that shadow variable (TimeWindowedCustomer.arrivalTime) forgot to update it when one of its sources changed after completedAction (Initial score calculated). at org.optaplanner.core.impl.score.director.AbstractScoreDirector.assertShadowVariablesAreNotStale(AbstractScoreDirector.java:350) at org.optaplanner.core.impl.solver.recaller.BestSolutionRecaller.solvingStarted(BestSolutionRecaller.java:84) at org.optaplanner.core.impl.solver.DefaultSolver.solvingStarted(DefaultSolver.java:197) at org.optaplanner.core.impl.solver.DefaultSolver.solve(DefaultSolver.java:175) at org.optaplanner.examples.common.business.SolutionBusiness.solve(SolutionBusiness.java:316) at org.optaplanner.examples.common.swingui.SolverAndPersistenceFrame$SolveWorker.doInBackground(SolverAndPersistenceFrame.java:307) at org.optaplanner.examples.common.swingui.SolverAndPersistenceFrame$SolveWorker.doInBackground(SolverAndPersistenceFrame.java:297) at javax.swing.SwingWorker$1.call(SwingWorker.java:296) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at javax.swing.SwingWorker.run(SwingWorker.java:335) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745)