<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 &quot;main&quot; 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 &quot;requiredWorkTimeTotal&quot;</div><div>    when</div><div>        $engineer : Engineer($worktime : worktime )</div><div>        $requiredEngineerWorktimeTotal : Number(intValue &gt; $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(&quot;requiredWorkTimeTotal&quot;, ConstraintType.NEGATIVE_HARD,</div><div>                $requiredEngineerWorktimeTotal.intValue() - $worktime,</div><div>                $engineer));</div>
<div>end</div><div>----------</div><div><br></div><div style>I&#39;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&#39;m working with right now:</div>
<div style><br></div><div style>-----------</div><div style><div>List&lt;Engineer&gt; engineerList = new ArrayList&lt;Engineer&gt;();</div><div>engineerList.add(new Engineer(1l, 8, ABC1, &quot;Fabio&quot;));</div><div>engineerList.add(new Engineer(2l, 8, ABC2, &quot;Qwert&quot;));</div>
<div>engineerList.add(new Engineer(3l, 8, ABC3, &quot;Trewq&quot;));</div><div><br></div><div>List&lt;WorkOrder&gt; workOrderList = new ArrayList&lt;WorkOrder&gt;();</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>