Uploaded image for project: 'OptaPlanner'
  1. OptaPlanner
  2. PLANNER-500

VRP example with with time windows in FULL_ASSERT mode throws VariableListener corruption

XMLWordPrintable

    • 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)
      

              gdesmet@redhat.com Geoffrey De Smet (Inactive)
              gdesmet@redhat.com Geoffrey De Smet (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: