Exception in thread "main" java.lang.NullPointerException
at java.util.ArrayList.addAll(Unknown Source)
at org.drools.planner.core.domain.solution.SolutionDescriptor.getAllFacts(SolutionDescriptor.java:178)
at org.drools.planner.core.score.director.drools.DroolsScoreDirector.getWorkingFacts(DroolsScoreDirector.java:88)
at org.drools.planner.core.score.director.drools.DroolsScoreDirector.resetWorkingMemory(DroolsScoreDirector.java:81)
at org.drools.planner.core.score.director.drools.DroolsScoreDirector.setWorkingSolution(DroolsScoreDirector.java:70)
at org.drools.planner.core.solver.scope.DefaultSolverScope.setWorkingSolutionFromBestSolution(DefaultSolverScope.java:158)
at org.drools.planner.core.solver.DefaultSolver.solvingStarted(DefaultSolver.java:176)
at org.drools.planner.core.solver.DefaultSolver.solve(DefaultSolver.java:154)
at com.swa.planner.snap1.app.SortWorkOrder.main(SortWorkOrder.java:41)
rule "requiredWorkTimeTotal"
when
$engineer : Engineer($worktime : worktime )
$requiredEngineerWorktimeTotal : Number(intValue > $worktime) from accumulate(
WorkOrder(
engineer == $engineer,
$requiredWorktime : requiredWorktime ),
sum($requiredWorktime)
)
then
insertLogical(new IntConstraintOccurrence("requiredWorkTimeTotal", ConstraintType.NEGATIVE_HARD,
$requiredEngineerWorktimeTotal.intValue() - $worktime,
$engineer));
end
----------
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:
-----------
List<Engineer> engineerList = new ArrayList<Engineer>();
engineerList.add(new Engineer(1l, 8, ABC1, "Fabio"));
engineerList.add(new Engineer(2l, 8, ABC2, "Qwert"));
engineerList.add(new Engineer(3l, 8, ABC3, "Trewq"));
List<WorkOrder> workOrderList = new ArrayList<WorkOrder>();
workOrderList.add(new WorkOrder(101l, 8, ABC1));
workOrderList.add(new WorkOrder(102L, 8, ABC2));
workOrderList.add(new WorkOrder(103L, 8, ABC3));
-----------