[rules-users] NPE at distribution [Planner]

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


Nevermind, just found the source of the problem :D


2013/2/13 André Fróes <arfmoraes at gmail.com>

> In this case should I try another version of planner (snapshot) or is some
> condition that i'm not fulfilling here?
>
>
> 2013/2/13 Geoffrey De Smet <ge0ffrey.spam at gmail.com>
>
>>
>> Op 13-02-13 17:00, André Fróes schreef:
>>
>> 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)
>>
>> Take a look at
>>
>> https://github.com/droolsjbpm/drools-planner/blob/5.5.x/drools-planner-core/src/main/java/org/drools/planner/core/domain/solution/SolutionDescriptor.java#L178
>> Looks like your Solution implementation doesn't respect the
>> Solution.getProblemFacts() contract.
>>
>>   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));
>> -----------
>>
>>
>> _______________________________________________
>> rules-users mailing listrules-users at lists.jboss.orghttps://lists.jboss.org/mailman/listinfo/rules-users
>>
>>
>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-users
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20130213/f05ac836/attachment.html 


More information about the rules-users mailing list