[rules-users] NPE at distribution [Planner]

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


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/6747abeb/attachment.html 


More information about the rules-users mailing list