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(a)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-co...
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@lists.jboss.orghttps://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users