<div dir="ltr">Hello, I am getting an NPE when trying to solve a simple problem with 3 workorder and 3 engineers.<div>------------</div><div><div>Exception in thread "main" java.lang.NullPointerException</div><div>
<span class="" style="white-space:pre">        </span>at java.util.ArrayList.addAll(Unknown Source)</div><div><span class="" style="white-space:pre">        </span>at org.drools.planner.core.domain.solution.SolutionDescriptor.getAllFacts(SolutionDescriptor.java:178)</div>
<div><span class="" style="white-space:pre">        </span>at org.drools.planner.core.score.director.drools.DroolsScoreDirector.getWorkingFacts(DroolsScoreDirector.java:88)</div><div><span class="" style="white-space:pre">        </span>at org.drools.planner.core.score.director.drools.DroolsScoreDirector.resetWorkingMemory(DroolsScoreDirector.java:81)</div>
<div><span class="" style="white-space:pre">        </span>at org.drools.planner.core.score.director.drools.DroolsScoreDirector.setWorkingSolution(DroolsScoreDirector.java:70)</div><div><span class="" style="white-space:pre">        </span>at org.drools.planner.core.solver.scope.DefaultSolverScope.setWorkingSolutionFromBestSolution(DefaultSolverScope.java:158)</div>
<div><span class="" style="white-space:pre">        </span>at org.drools.planner.core.solver.DefaultSolver.solvingStarted(DefaultSolver.java:176)</div><div><span class="" style="white-space:pre">        </span>at org.drools.planner.core.solver.DefaultSolver.solve(DefaultSolver.java:154)</div>
<div><span class="" style="white-space:pre">        </span>at com.swa.planner.snap1.app.SortWorkOrder.main(SortWorkOrder.java:41)</div></div><div>-----------------</div><div><br></div><div style>the rule for it is simple (adapted from cloudbalancing):</div>
<div style><br></div><div style>----------</div><div style><div>rule "requiredWorkTimeTotal"</div><div> when</div><div> $engineer : Engineer($worktime : worktime )</div><div> $requiredEngineerWorktimeTotal : Number(intValue > $worktime) from accumulate(</div>
<div> WorkOrder(</div><div> engineer == $engineer,</div><div> $requiredWorktime : requiredWorktime ),</div><div> sum($requiredWorktime)</div><div> )</div><div> then</div>
<div> insertLogical(new IntConstraintOccurrence("requiredWorkTimeTotal", ConstraintType.NEGATIVE_HARD,</div><div> $requiredEngineerWorktimeTotal.intValue() - $worktime,</div><div> $engineer));</div>
<div>end</div><div>----------</div><div><br></div><div style>I'm rebuilding the app bit by bit and then evolve it. The skill is not considered yet to make the comparison, just worktime. This is the data i'm working with right now:</div>
<div style><br></div><div style>-----------</div><div style><div>List<Engineer> engineerList = new ArrayList<Engineer>();</div><div>engineerList.add(new Engineer(1l, 8, ABC1, "Fabio"));</div><div>engineerList.add(new Engineer(2l, 8, ABC2, "Qwert"));</div>
<div>engineerList.add(new Engineer(3l, 8, ABC3, "Trewq"));</div><div><br></div><div>List<WorkOrder> workOrderList = new ArrayList<WorkOrder>();</div><div>workOrderList.add(new WorkOrder(101l, 8, ABC1));</div>
<div>workOrderList.add(new WorkOrder(102L, 8, ABC2));</div><div>workOrderList.add(new WorkOrder(103L, 8, ABC3));</div><div>-----------</div></div></div></div>