[rules-users] NPE at distribution [Planner]

André Fróes arfmoraes at gmail.com
Wed Feb 13 11:00:00 EST 2013


Hello, I am getting an NPE when trying to solve a simple problem with 3
workorder and 3 engineers.
------------
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)
-----------------

the rule for it is simple (adapted from cloudbalancing):

----------
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));
-----------
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20130213/62ad930e/attachment.html 


More information about the rules-users mailing list