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

TSP example: Corrupted listener after changing visit connections while solving

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • Minor
    • None
    • None
    • optaplanner-examples
    • None
    • NEW
    • NEW

    Description

      Follows up on PLANNER-2687. See its closing comment for context.

      Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: Solving failed.
      	at org.optaplanner.examples.common.swingui.SolverAndPersistenceFrame$SolveWorker.done(SolverAndPersistenceFrame.java:377)
      	at java.desktop/javax.swing.SwingWorker$5.run(SwingWorker.java:750)
      	at java.desktop/javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.run(SwingWorker.java:848)
      	at java.desktop/sun.swing.AccumulativeRunnable.run(AccumulativeRunnable.java:112)
      	at java.desktop/javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.actionPerformed(SwingWorker.java:858)
      	at java.desktop/javax.swing.Timer.fireActionPerformed(Timer.java:311)
      	at java.desktop/javax.swing.Timer$DoPostEvent.run(Timer.java:243)
      	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
      	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:771)
      	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722)
      	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716)
      	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
      	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
      	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:741)
      	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
      	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
      	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
      	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
      	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
      	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
      Caused by: java.lang.IllegalStateException: Solver threw an exception.
      	at org.optaplanner.examples.common.business.SolutionBusiness.solve(SolutionBusiness.java:364)
      	at org.optaplanner.examples.common.swingui.SolverAndPersistenceFrame$SolveWorker.doInBackground(SolverAndPersistenceFrame.java:365)
      	at java.desktop/javax.swing.SwingWorker$1.call(SwingWorker.java:304)
      	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
      	at java.desktop/javax.swing.SwingWorker.run(SwingWorker.java:343)
      	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
      	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
      	at java.base/java.lang.Thread.run(Thread.java:833)
      Caused by: java.util.concurrent.ExecutionException: java.lang.IllegalStateException: Solving failed for problemId (1).
      	at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
      	at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
      	at org.optaplanner.core.impl.solver.DefaultSolverJob.getFinalBestSolution(DefaultSolverJob.java:215)
      	at org.optaplanner.examples.common.business.SolutionBusiness.solve(SolutionBusiness.java:359)
      	... 7 more
      Caused by: java.lang.IllegalStateException: Solving failed for problemId (1).
      	at org.optaplanner.core.impl.solver.DefaultSolverJob.call(DefaultSolverJob.java:131)
      	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
      	... 3 more
      Caused by: java.lang.IllegalStateException: The supply (ExternalizedSingletonInverseVariableSupply(previousStandstill)) is corrupted, because the entity (Bern) for sourceVariable (previousStandstill) cannot be retracted: the entity was never inserted for that value (Bern).
      	at org.optaplanner.core.impl.domain.variable.inverserelation.ExternalizedSingletonInverseVariableSupply.retract(ExternalizedSingletonInverseVariableSupply.java:111)
      	at org.optaplanner.core.impl.domain.variable.inverserelation.ExternalizedSingletonInverseVariableSupply.beforeVariableChanged(ExternalizedSingletonInverseVariableSupply.java:69)
      	at org.optaplanner.core.impl.domain.variable.listener.support.VariableChangedNotification.triggerBefore(VariableChangedNotification.java:31)
      	at org.optaplanner.core.impl.domain.variable.listener.support.VariableListenerNotifiable.addNotification(VariableListenerNotifiable.java:57)
      	at org.optaplanner.core.impl.domain.variable.listener.support.VariableListenerSupport.beforeVariableChanged(VariableListenerSupport.java:144)
      	at org.optaplanner.core.impl.score.director.AbstractScoreDirector.beforeVariableChanged(AbstractScoreDirector.java:401)
      	at org.optaplanner.core.impl.score.director.AbstractScoreDirector.changeVariableFacade(AbstractScoreDirector.java:416)
      	at org.optaplanner.core.impl.heuristic.selector.move.generic.chained.ChainedChangeMove.doMoveOnGenuineVariables(ChainedChangeMove.java:76)
      	at org.optaplanner.core.impl.heuristic.move.AbstractMove.doMoveOnly(AbstractMove.java:42)
      	at org.optaplanner.core.impl.heuristic.move.AbstractMove.doMove(AbstractMove.java:36)
      	at org.optaplanner.core.impl.heuristic.move.AbstractMove.doMove(AbstractMove.java:31)
      	at org.optaplanner.core.impl.score.director.AbstractScoreDirector.doAndProcessMove(AbstractScoreDirector.java:234)
      	at org.optaplanner.core.impl.localsearch.decider.LocalSearchDecider.doMove(LocalSearchDecider.java:133)
      	at org.optaplanner.core.impl.localsearch.decider.LocalSearchDecider.decideNextStep(LocalSearchDecider.java:117)
      	at org.optaplanner.core.impl.localsearch.DefaultLocalSearchPhase.solve(DefaultLocalSearchPhase.java:88)
      	at org.optaplanner.core.impl.solver.AbstractSolver.runPhases(AbstractSolver.java:99)
      	at org.optaplanner.core.impl.solver.DefaultSolver.solve(DefaultSolver.java:209)
      	at org.optaplanner.core.impl.solver.DefaultSolverJob.call(DefaultSolverJob.java:125)
      	... 4 more
      

      Attachments

        Issue Links

          Activity

            People

              jlocker Jiří Locker
              jlocker Jiří Locker
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated: