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

Multithreaded Incremental Solving docs must specify that usage of @PlanningId's is required

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 7.11.0.Final
    • 7.9.0.Final
    • None
    • None
    • 2018 Week 30-32, 2018 Week 33-35
    • 3
    • NEW
    • NEW

      I tried the new Multithreaded Incremental Solving in a working project and this error is thrown:

      java.lang.IllegalStateException: The move thread with moveThreadIndex (3) has thrown an exception. Relayed here in the parent thread.
      	at org.optaplanner.core.impl.heuristic.thread.OrderByMoveIndexBlockingQueue.take(OrderByMoveIndexBlockingQueue.java:142)
      	at org.optaplanner.core.impl.constructionheuristic.decider.MultiThreadedConstructionHeuristicDecider.forageResult(MultiThreadedConstructionHeuristicDecider.java:185)
      	at org.optaplanner.core.impl.constructionheuristic.decider.MultiThreadedConstructionHeuristicDecider.decideNextStep(MultiThreadedConstructionHeuristicDecider.java:155)
      	at org.optaplanner.core.impl.constructionheuristic.DefaultConstructionHeuristicPhase.solve(DefaultConstructionHeuristicPhase.java:74)
      	at org.optaplanner.core.impl.solver.AbstractSolver.runPhases(AbstractSolver.java:87)
      	at org.optaplanner.core.impl.solver.DefaultSolver.solve(DefaultSolver.java:191)
      	
      Caused by: java.lang.IllegalArgumentException: The externalObject (X) cannot be looked up.
      Maybe give the class (class X) a PlanningId annotation or change the PlanningSolution annotation's LookUpStrategyType or don't rely on functionality that depends on ScoreDirector.lookUpWorkingObject().
      	at org.optaplanner.core.impl.domain.lookup.NoneLookUpStrategy.lookUpWorkingObject(NoneLookUpStrategy.java:47)
      	at org.optaplanner.core.impl.domain.lookup.LookUpManager.lookUpWorkingObject(LookUpManager.java:74)
      	at org.optaplanner.core.impl.score.director.AbstractScoreDirector.lookUpWorkingObject(AbstractScoreDirector.java:498)
      	at org.optaplanner.core.impl.heuristic.selector.move.generic.chained.ChainedChangeMove.rebase(ChainedChangeMove.java:76)
      	at org.optaplanner.core.impl.heuristic.selector.move.generic.chained.ChainedChangeMove.rebase(ChainedChangeMove.java:30)
      	at org.optaplanner.core.impl.heuristic.thread.MoveThreadRunner.run(MoveThreadRunner.java:136)
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      	at java.lang.Thread.run(Thread.java:745)
      

      I would like to confirm if this is a bug or if an additional setup is needed in order to enable the feature.

      Thanks

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

                Created:
                Updated:
                Resolved: