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

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

    XMLWordPrintable

Details

    • NEW
    • NEW

    Description

      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)
      

      Attachments

        Activity

          People

            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

            Dates

              Created:
              Updated:
              Resolved: