<div dir="ltr">In this case should I try another version of planner (snapshot) or is some condition that i&#39;m not fulfilling here? </div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/2/13 Geoffrey De Smet <span dir="ltr">&lt;<a href="mailto:ge0ffrey.spam@gmail.com" target="_blank">ge0ffrey.spam@gmail.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    <br>
    <div>Op 13-02-13 17:00, André Fróes schreef:<br>
    </div><div class="im">
    <blockquote type="cite">
      <div dir="ltr">Hello, I am getting an NPE when trying to solve a
        simple problem with 3 workorder and 3 engineers.
        <div>------------</div>
        <div>
          <div>Exception in thread &quot;main&quot; java.lang.NullPointerException</div>
          <div>
            <span style="white-space:pre-wrap"> </span>at
            java.util.ArrayList.addAll(Unknown Source)</div>
          <div><span style="white-space:pre-wrap"> </span>at
org.drools.planner.core.domain.solution.SolutionDescriptor.getAllFacts(SolutionDescriptor.java:178)</div>
        </div>
      </div>
    </blockquote></div>
    Take a look at<br>
     
<a href="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" target="_blank">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</a><br>

    Looks like your Solution implementation doesn&#39;t respect the
    Solution.getProblemFacts() contract.<br>
    <blockquote type="cite"><div><div class="h5">
      <div dir="ltr">
        <div>
          <div><span style="white-space:pre-wrap"> </span>at
org.drools.planner.core.score.director.drools.DroolsScoreDirector.getWorkingFacts(DroolsScoreDirector.java:88)</div>
          <div><span style="white-space:pre-wrap"> </span>at
org.drools.planner.core.score.director.drools.DroolsScoreDirector.resetWorkingMemory(DroolsScoreDirector.java:81)</div>
          <div><span style="white-space:pre-wrap"> </span>at
org.drools.planner.core.score.director.drools.DroolsScoreDirector.setWorkingSolution(DroolsScoreDirector.java:70)</div>
          <div><span style="white-space:pre-wrap"> </span>at
org.drools.planner.core.solver.scope.DefaultSolverScope.setWorkingSolutionFromBestSolution(DefaultSolverScope.java:158)</div>
          <div><span style="white-space:pre-wrap"> </span>at
org.drools.planner.core.solver.DefaultSolver.solvingStarted(DefaultSolver.java:176)</div>
          <div><span style="white-space:pre-wrap"> </span>at
org.drools.planner.core.solver.DefaultSolver.solve(DefaultSolver.java:154)</div>
          <div><span style="white-space:pre-wrap"> </span>at
            com.swa.planner.snap1.app.SortWorkOrder.main(SortWorkOrder.java:41)</div>
        </div>
        <div>-----------------</div>
        <div><br>
        </div>
        <div>the rule for it is simple (adapted from
          cloudbalancing):</div>
        <div><br>
        </div>
        <div>----------</div>
        <div>
          <div>rule &quot;requiredWorkTimeTotal&quot;</div>
          <div>    when</div>
          <div>        $engineer : Engineer($worktime : worktime )</div>
          <div>        $requiredEngineerWorktimeTotal : Number(intValue
            &gt; $worktime) from accumulate(</div>
          <div>            WorkOrder(</div>
          <div>                engineer == $engineer,</div>
          <div>                $requiredWorktime : requiredWorktime ),</div>
          <div>            sum($requiredWorktime)</div>
          <div>        )</div>
          <div>    then</div>
          <div>        insertLogical(new
            IntConstraintOccurrence(&quot;requiredWorkTimeTotal&quot;,
            ConstraintType.NEGATIVE_HARD,</div>
          <div>                $requiredEngineerWorktimeTotal.intValue()
            - $worktime,</div>
          <div>                $engineer));</div>
          <div>end</div>
          <div>----------</div>
          <div><br>
          </div>
          <div>I&#39;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&#39;m working with
            right now:</div>
          <div><br>
          </div>
          <div>-----------</div>
          <div>
            <div>List&lt;Engineer&gt; engineerList = new
              ArrayList&lt;Engineer&gt;();</div>
            <div>engineerList.add(new Engineer(1l, 8, ABC1, &quot;Fabio&quot;));</div>
            <div>engineerList.add(new Engineer(2l, 8, ABC2, &quot;Qwert&quot;));</div>
            <div>engineerList.add(new Engineer(3l, 8, ABC3, &quot;Trewq&quot;));</div>
            <div><br>
            </div>
            <div>List&lt;WorkOrder&gt; workOrderList = new
              ArrayList&lt;WorkOrder&gt;();</div>
            <div>workOrderList.add(new WorkOrder(101l, 8, ABC1));</div>
            <div>workOrderList.add(new WorkOrder(102L, 8, ABC2));</div>
            <div>workOrderList.add(new WorkOrder(103L, 8, ABC3));</div>
            <div>-----------</div>
          </div>
        </div>
      </div>
      <br>
      <fieldset></fieldset>
      <br>
      </div></div><pre>_______________________________________________
rules-users mailing list
<a href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a></pre>
    </blockquote>
    <br>
  </div>

<br>_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br></blockquote></div><br></div>