<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    We'll need to know the real exception in order to reproduce the
    problem here and fix the eating issue.<br>
    So let us know the real exception, even if it's a simple typo.<br>
    <blockquote type="cite">put a debug breakpoint here to figure out
      what the real exception is:<br>
      <span style="white-space:pre-wrap"></span>
      org.mvel2.util.ErrorUtil.rewriteIfNeeded(ErrorUtil.java:12)</blockquote>
    <br>
    <div class="moz-cite-prefix">Op 28-01-13 17:08, Andr&eacute; Fr&oacute;es schreef:<br>
    </div>
    <blockquote
cite="mid:CAC8f_wVaxyjYVj-YtfhsdVYgvJL3MUnHDy-HRU2oHRZS+6_L2Q@mail.gmail.com"
      type="cite">
      <div dir="ltr">I'm sending a screenshot of my libs, all from the
        bundle downloaded from site. Also sending the full proj if u
        want to analyze.
        <div><br>
        </div>
        <div><img src="cid:part1.00040102.03070701@gmail.com"
            alt="Imagem inline 1" height="547" width="747"><br>
        </div>
      </div>
      <div class="gmail_extra"><br>
        <br>
        <div class="gmail_quote">2013/1/28 Geoffrey De Smet <span
            dir="ltr">&lt;<a moz-do-not-send="true"
              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"> Which mvel2 jar
              version?<br>
              <br>
              Provided that the mvel version is correct, it looks like
              the real exception gets eaten...<br>
              <blockquote type="cite">
                <div>Caused by: java.lang.NullPointerException</div>
                <div><span style="white-space:pre-wrap"> </span>at
                  java.lang.String.&lt;init&gt;(Unknown Source)</div>
                <div><span style="white-space:pre-wrap"> </span>at
                  org.mvel2.util.ErrorUtil.rewriteIfNeeded(ErrorUtil.java:12)</div>
              </blockquote>
              If that's true, we need to open a jira. Pinging Mario on
              this.<br>
              <br>
              In any case, the exception message should be much clearer
              as to what's the problem is.<br>
              <br>
              <div>Op 28-01-13 16:51, Andr&eacute; Fr&oacute;es schreef:<br>
              </div>
              <blockquote type="cite">
                <div dir="ltr">5.5.0.Final both</div>
                <div class="gmail_extra"><br>
                  <br>
                  <div class="gmail_quote">2013/1/28 Geoffrey De Smet <span
                      dir="ltr">&lt;<a moz-do-not-send="true"
                        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"> Which
                        version of planner (drools-planner-core) and
                        drools (drools-core, drools-compiler)?<br>
                        <div>Op 28-01-13 16:40, Andr&eacute; Fr&oacute;es schreef:<br>
                        </div>
                        <div>
                          <div>
                            <blockquote type="cite">
                              <div dir="ltr">I'm comparing both the
                                example and my implementation, can't see
                                anything different from each other
                                except that example uses that
                                CloudBalancingGenerator. Even the drl
                                rule remains the same, i wrote it and
                                then fixed the errors until reach that
                                point.</div>
                              <div class="gmail_extra"><br>
                                <br>
                                <div class="gmail_quote">2013/1/28 Andr&eacute;
                                  Fr&oacute;es <span dir="ltr">&lt;<a
                                      moz-do-not-send="true"
                                      href="mailto:arfmoraes@gmail.com"
                                      target="_blank">arfmoraes@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 dir="ltr">this is the full drl
                                      file:
                                      <div><br>
                                      </div>
                                      <div>------------</div>
                                      <div><br>
                                      </div>
                                      <div>
                                        <div>package
                                          com.swa.planner.domain.rule;</div>
                                        <div><br>
                                        </div>
                                        <div>import
org.drools.planner.core.score.buildin.hardandsoft.HardAndSoftScoreHolder;</div>
                                        <div>import
                                          org.drools.planner.core.score.constraint.IntConstraintOccurrence;</div>
                                        <div>import
                                          org.drools.planner.core.score.constraint.ConstraintType;</div>
                                        <div><br>
                                        </div>
                                        <div>import
                                          com.swa.planner.domain.CloudBalance;</div>
                                        <div>import
                                          com.swa.planner.domain.CloudComputer;</div>
                                        <div>import
                                          com.swa.planner.domain.CloudProcess;</div>
                                        <div><br>
                                        </div>
                                        <div>global
                                          HardAndSoftScoreHolder
                                          scoreHolder;</div>
                                        <div><br>
                                        </div>
                                        <div>rule
                                          "requiredCpuPowerTotal"</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>when</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>$computer :
                                          CloudComputer($cpuPower :
                                          cpuPower)</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>$requiredCpuPowerTotal
                                          : Number(intValue &gt;
                                          $cpuPower) from accumulate(</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>CloudProcess (</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>computer == $computer,&nbsp;</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>$requiredCpuPower :
                                          requiredCpuPower),</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>sum($requiredCpuPower)</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>)</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>then</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>insertLogical(new
                                          IntConstraintOccurrence("requiredCpuPowerTotal",
                                          ConstraintType.NEGATIVE_HARD,</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>$requiredCpuPowerTotal.intValue()


                                          - $cpuPower,</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>$computer));</div>
                                        <div>end</div>
                                        <div><br>
                                        </div>
                                        <div>rule "requiredMemoryTotal"</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>when</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>$computer :
                                          CloudComputer($memory :
                                          memory)</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>$requiredMemoryTotal :
                                          Number(intValue &gt; $memory)
                                          from accumulate(</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>CloudProcess (&nbsp;</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>computer == $computer,&nbsp;</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>$requiredMemory :
                                          requiredMemory),</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>sum($requiredMemory)</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>)</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>then</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>insertLogical(new
                                          IntConstraintOccurrence("requiredMemoryTotal",
                                          ConstraintType.NEGATIVE_HARD,</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>$requiredMemoryTotal.intValue()


                                          - $memory,&nbsp;</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>$computer));</div>
                                        <div>end</div>
                                        <div><br>
                                        </div>
                                        <div>rule
                                          "requiredNetworkBandwidth"</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>when</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>$computer :
                                          CloudComputer($networkBandwidth
                                          : networkBandwidth)</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>$requiredNetworkBandwidthTotal


                                          : Number(intValue &gt;
                                          $networkBandwidth) from
                                          accumulate(</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>CloudProcess (</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>computer == $computer,</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>$requiredNetworkBandwidth


                                          : requiredNetworkBandwidth)</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>sum($requiredNetworkBandwidth)</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>)</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>then</div>
                                        <div> <span
                                            style="white-space:pre-wrap">
                                          </span>insertLogical(new
                                          IntConstraintOccurrence("requiredNetworkBandwidth",
                                          ConstraintType.NEGATIVE_HARD,&nbsp;</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>$requiredNetworkBandwidthTotal.intValue()


                                          - $networkBandwidth,&nbsp;</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>$computer));</div>
                                        <div>end</div>
                                        <div><br>
                                        </div>
                                        <div>rule "hardConstraintBroken"</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>salience -1</div>
                                        <div> <span
                                            style="white-space:pre-wrap">
                                          </span>when</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>$hardTotal : Number()
                                          from accumulate(</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>IntConstraintOccurrence(constraintType


                                          ==
                                          ConstraintType.NEGATIVE_HARD,
                                          $weight : weight)</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>sum($weight)</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>)</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>then</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>scoreHolder.setHardConstraintsBroken($hardTotal.intValue());</div>
                                        <div>end</div>
                                        <div><br>
                                        </div>
                                        <div><br>
                                        </div>
                                        <div>// Soft constraint</div>
                                        <div><br>
                                        </div>
                                        <div>rule "computerCost"</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>when</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>$computer :
                                          CloudComputer($cost : cost)</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>exists
                                          CloudProcess(computer ==
                                          $computer)</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>then</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>insertLogical(new
                                          IntConstraintOccurrence("computerCost",
                                          ConstraintType.NEGATIVE_SOFT,</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>$cost,</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>$computer));</div>
                                        <div>end</div>
                                        <div><br>
                                        </div>
                                        <div>rule "softConstraintBroken"</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>salience -1</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>when</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>$softTotal : Number()
                                          from accumulate(</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>IntConstraintOccurrence(ConstraintType


                                          ==
                                          ConstraintType.NEGATIVE_SOFT,
                                          $weight : weight)</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>sum($weight)</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>)</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>then</div>
                                        <div><span
                                            style="white-space:pre-wrap">
                                          </span>scoreHolder.setHardConstraintsBroken($softTotal.intValue());</div>
                                        <div>end</div>
                                      </div>
                                    </div>
                                    <div>
                                      <div>
                                        <div class="gmail_extra"><br>
                                          <br>
                                          <div class="gmail_quote">2013/1/28

                                            Geoffrey De Smet <span
                                              dir="ltr">&lt;<a
                                                moz-do-not-send="true"
                                                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">
                                                com.swa.planner.domain.rule.Rule_requiredCpuPowerTotal_0a10acbeca924206a3becab080617987.defaultConsequence(Rule_requiredCpuPowerTotal_0a10acbeca924206a3becab080617987.java:14)



                                                <span
                                                  style="white-space:pre-wrap"><br>
                                                  What's in the then
                                                  side of
                                                  Rule_requiredCpuPowerTotal
                                                  ?<br>
                                                  <br>
                                                </span>
                                                <div>Op 28-01-13 16:00,
                                                  Andr&eacute; Fr&oacute;es schreef:<br>
                                                </div>
                                                <div>
                                                  <div>
                                                    <blockquote
                                                      type="cite">
                                                      <div dir="ltr">Even
                                                        adding that, the
                                                        error still
                                                        <div><br>
                                                        </div>
                                                        <div>--------------</div>
                                                        <div>
                                                          <div>12:57:41.050
                                                          [main] INFO
                                                          &nbsp;o.d.p.core.solver.DefaultSolver
                                                          - Solving
                                                          started: time
                                                          spend (152),
                                                          score (null),
                                                          new best score
                                                          (null), random
                                                          seed (0).</div>
                                                          <div>Exception
                                                          in thread
                                                          "main"
                                                          Exception
                                                          executing
                                                          consequence
                                                          for rule
                                                          "requiredCpuPowerTotal"
                                                          in
                                                          com.swa.planner.domain.rule:
java.lang.NullPointerException</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleException(DefaultConsequenceExceptionHandler.java:39)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1297)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1221)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1456)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:710)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:674)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.planner.core.score.director.drools.DroolsScoreDirector.calculateScore(DroolsScoreDirector.java:177)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.planner.core.solver.scope.DefaultSolverScope.calculateScore(DefaultSolverScope.java:92)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.planner.core.phase.AbstractSolverPhaseScope.calculateScore(AbstractSolverPhaseScope.java:120)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.planner.core.constructionheuristic.greedyFit.decider.DefaultGreedyDecider.processMove(DefaultGreedyDecider.java:136)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.planner.core.constructionheuristic.greedyFit.decider.DefaultGreedyDecider.doMove(DefaultGreedyDecider.java:110)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.planner.core.constructionheuristic.greedyFit.decider.DefaultGreedyDecider.decideNextStep(DefaultGreedyDecider.java:82)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.planner.core.constructionheuristic.greedyFit.DefaultGreedyFitSolverPhase.solve(DefaultGreedyFitSolverPhase.java:65)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.planner.core.solver.DefaultSolver.runSolverPhases(DefaultSolver.java:190)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.planner.core.solver.DefaultSolver.solve(DefaultSolver.java:155)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
com.swa.planner.domain.CloudTest.main(CloudTest.java:67)</div>
                                                          <div>Caused
                                                          by:
                                                          java.lang.NullPointerException</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
                                                          java.lang.String.&lt;init&gt;(Unknown
                                                          Source)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.mvel2.util.ErrorUtil.rewriteIfNeeded(ErrorUtil.java:12)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.mvel2.compiler.ExpressionCompiler._compile(ExpressionCompiler.java:302)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.mvel2.compiler.ExpressionCompiler.compile(ExpressionCompiler.java:62)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.mvel2.MVEL.compileExpression(MVEL.java:810)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.base.mvel.MVELCompilationUnit.compile(MVELCompilationUnit.java:435)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.base.mvel.MVELCompilationUnit.getCompiledExpression(MVELCompilationUnit.java:238)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.rule.constraint.MvelConstraint.createMvelConditionEvaluator(MvelConstraint.java:206)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.rule.constraint.MvelConstraint.evaluate(MvelConstraint.java:190)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.rule.constraint.MvelConstraint.isAllowed(MvelConstraint.java:157)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:137)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.reteoo.CompositeObjectSinkAdapter.doPropagateAssertObject(CompositeObjectSinkAdapter.java:497)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:382)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:235)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:240)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:350)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.common.SimpleBeliefSystem.insert(SimpleBeliefSystem.java:38)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.common.TruthMaintenanceSystem.addLogicalDependency(TruthMaintenanceSystem.java:204)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.common.TruthMaintenanceSystem.addLogicalDependency(TruthMaintenanceSystem.java:176)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:231)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:903)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.base.DefaultKnowledgeHelper.insertLogical(DefaultKnowledgeHelper.java:245)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.base.DefaultKnowledgeHelper.insertLogical(DefaultKnowledgeHelper.java:210)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.base.DefaultKnowledgeHelper.insertLogical(DefaultKnowledgeHelper.java:205)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
com.swa.planner.domain.rule.Rule_requiredCpuPowerTotal_0a10acbeca924206a3becab080617987.defaultConsequence(Rule_requiredCpuPowerTotal_0a10acbeca924206a3becab080617987.java:14)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
                                                          com.swa.planner.domain.rule.Rule_requiredCpuPowerTotal_0a10acbeca924206a3becab080617987DefaultConsequenceInvokerGenerated.evaluate(Unknown



                                                          Source)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
                                                          com.swa.planner.domain.rule.Rule_requiredCpuPowerTotal_0a10acbeca924206a3becab080617987DefaultConsequenceInvoker.evaluate(Unknown



                                                          Source)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1287)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>... 14
                                                          more</div>
                                                        </div>
                                                        <div><br>
                                                        </div>
                                                        <div>--------------</div>
                                                        <div><br>
                                                        </div>
                                                        <div>I added to
                                                          cloudprocess
                                                          computer
                                                          variable:</div>
                                                        <div>--------------</div>
                                                        <div>
                                                          <div>package
                                                          com.swa.planner.domain;</div>
                                                          <div><br>
                                                          </div>
                                                          <div>import
                                                          org.drools.planner.api.domain.entity.PlanningEntity;</div>
                                                          <div>import
                                                          org.drools.planner.api.domain.variable.PlanningVariable;</div>
                                                          <div>import
                                                          org.drools.planner.api.domain.variable.ValueRange;</div>
                                                          <div>import
                                                          org.drools.planner.api.domain.variable.ValueRangeType;</div>
                                                          <div>import
                                                          org.drools.planner.examples.common.domain.AbstractPersistable;</div>
                                                          <div><br>
                                                          </div>
                                                          <div>@PlanningEntity(difficultyComparatorClass


                                                          =
                                                          CloudProcessDifficultyComparator.class)</div>
                                                          <div>public
                                                          class
                                                          CloudProcess
                                                          extends
                                                          AbstractPersistable{</div>
                                                          <div><br>
                                                          </div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>private
                                                          int
                                                          requiredCpuPower;</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>private
                                                          int
                                                          requiredMemory;</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>private
                                                          int
                                                          requiredNetworkBandwidth;</div>
                                                          <div><br>
                                                          </div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>private
                                                          CloudComputer
                                                          computer;</div>
                                                          <div><br>
                                                          </div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>public
                                                          CloudProcess(long
                                                          id, int
                                                          requiredCpuPower,
                                                          int
                                                          requiredMemory,</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>int
                                                          requiredNetworkBandwidth)
                                                          {</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>super();</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>setId(id);</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>this.requiredCpuPower



                                                          =
                                                          requiredCpuPower;</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>this.requiredMemory



                                                          =
                                                          requiredMemory;</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>this.requiredNetworkBandwidth



                                                          =
                                                          requiredNetworkBandwidth;</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>}</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span></div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>public
                                                          CloudProcess()
                                                          {<span
                                                          style="white-space:pre-wrap">
                                                          </span>}</div>
                                                          <div><br>
                                                          </div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>public
                                                          int
                                                          getRequiredCpuPower()
                                                          {</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>return
requiredCpuPower;</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>}</div>
                                                          <div><br>
                                                          </div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>public
                                                          void
                                                          setRequiredCpuPower(int
                                                          requiredCpuPower)
                                                          {</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>this.requiredCpuPower



                                                          =
                                                          requiredCpuPower;</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>}</div>
                                                          <div><br>
                                                          </div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>public
                                                          int
                                                          getRequiredMemory()
                                                          {</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>return
requiredMemory;</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>}</div>
                                                          <div><br>
                                                          </div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>public
                                                          void
                                                          setRequiredMemory(int
                                                          requiredMemory)
                                                          {</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>this.requiredMemory



                                                          =
                                                          requiredMemory;</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>}</div>
                                                          <div><br>
                                                          </div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>public
                                                          int
                                                          getRequiredNetworkBandwidth()
                                                          {</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>return
requiredNetworkBandwidth;</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>}</div>
                                                          <div><br>
                                                          </div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>public
                                                          void
                                                          setRequiredNetworkBandwidth(int
                                                          requiredNetworkBandwidth)

                                                          {</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>this.requiredNetworkBandwidth



                                                          =
                                                          requiredNetworkBandwidth;</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>}</div>
                                                          <div><br>
                                                          </div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>public
                                                          String
                                                          getLabel() {</div>
                                                          <div>&nbsp; &nbsp; &nbsp; &nbsp;
                                                          return
                                                          "Process " +
                                                          id;</div>
                                                          <div>&nbsp; &nbsp; }</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span></div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>@PlanningVariable(strengthComparatorClass



                                                          =
                                                          CloudComputerStrengthComparator.class)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>@ValueRange(type



                                                          =
                                                          ValueRangeType.FROM_SOLUTION_PROPERTY,
                                                          solutionProperty
                                                          =
                                                          "computerList")</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>public
                                                          CloudComputer
                                                          getComputer()
                                                          {</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>if
                                                          (computer ==
                                                          null) { return
                                                          null; }</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>return
                                                          computer;</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>}</div>
                                                          <div><br>
                                                          </div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>public
                                                          void
                                                          setComputer(CloudComputer
                                                          computer) {</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>this.computer
                                                          = computer;</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>}</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span></div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>public
                                                          CloudProcess
                                                          clone(){</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>CloudProcess

                                                          clone = new
                                                          CloudProcess();</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span><a
                                                          moz-do-not-send="true"
href="http://clone.id" target="_blank">clone.id</a> = id;</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>clone.requiredCpuPower



                                                          =
                                                          requiredCpuPower;</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>clone.requiredMemory



                                                          =
                                                          requiredMemory;</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>clone.requiredNetworkBandwidth



                                                          =
                                                          requiredNetworkBandwidth;</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>clone.computer

                                                          = computer;</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>return
                                                          clone;</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>}</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span></div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>public
                                                          int
                                                          getRequiredMultiplicand()
                                                          {</div>
                                                          <div>&nbsp; &nbsp; &nbsp; &nbsp;
                                                          return
                                                          requiredCpuPower
                                                          *
                                                          requiredMemory
                                                          *
                                                          requiredNetworkBandwidth;</div>
                                                          <div>&nbsp; &nbsp; }</div>
                                                          <div>}</div>
                                                          <div>--------------<br>
                                                          </div>
                                                          <div><br>
                                                          </div>
                                                          <div>this is
                                                          what i'm doing
                                                          to run the
                                                          example:</div>
                                                          <div><br>
                                                          </div>
                                                          <div>-------------</div>
                                                          <div>
                                                          <div>package
                                                          com.swa.planner.domain;</div>
                                                          <div><br>
                                                          </div>
                                                          <div>import
                                                          java.io.ByteArrayInputStream;</div>
                                                          <div>import
                                                          java.util.ArrayList;</div>
                                                          <div>import
                                                          java.util.List;</div>
                                                          <div><br>
                                                          </div>
                                                          <div>import
                                                          org.drools.planner.config.SolverFactory;</div>
                                                          <div>import
                                                          org.drools.planner.config.XmlSolverFactory;</div>
                                                          <div>import
                                                          org.drools.planner.core.Solver;</div>
                                                          <div><br>
                                                          </div>
                                                          <div>public
                                                          class
                                                          CloudTest {</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>public
                                                          static void
                                                          main(String[]
                                                          args) {</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>String
                                                          t = "&lt;?xml
                                                          version=\"1.0\"

encoding=\"UTF-8\"?&gt;"</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>+
                                                          "&lt;solver&gt;"</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>+ "
&nbsp;&lt;solutionClass&gt;com.swa.planner.domain.CloudBalance&lt;/solutionClass&gt;"</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>+ "
&nbsp;&lt;planningEntityClass&gt;com.swa.planner.domain.CloudProcess&lt;/planningEntityClass&gt;"</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>+ "
                                                          &nbsp;&lt;scoreDirectorFactory&gt;"</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>+ " &nbsp;
                                                          &nbsp;&lt;scoreDefinitionType&gt;HARD_AND_SOFT&lt;/scoreDefinitionType&gt;"</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>+ " &nbsp;
&nbsp;&lt;scoreDrl&gt;/com/swa/planner/domain/rule/cloudBalancingScoreRules.drl&lt;/scoreDrl&gt;"</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>+ "
                                                          &nbsp;&lt;/scoreDirectorFactory&gt;"</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>+ "
                                                          &nbsp;&lt;termination&gt;"</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>+ " &nbsp;
                                                          &nbsp;&lt;maximumSecondsSpend&gt;120&lt;/maximumSecondsSpend&gt;"</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>+ "
                                                          &nbsp;&lt;/termination&gt;"</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>+ "
                                                          &nbsp;&lt;constructionHeuristic&gt;"</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>+ " &nbsp;
&nbsp;&lt;constructionHeuristicType&gt;FIRST_FIT_DECREASING&lt;/constructionHeuristicType&gt;"</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>+ " &nbsp;
&nbsp;&lt;constructionHeuristicPickEarlyType&gt;FIRST_LAST_STEP_SCORE_EQUAL_OR_IMPROVING&lt;/constructionHeuristicPickEarlyType&gt;"</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>+ "
                                                          &nbsp;&lt;/constructionHeuristic&gt;"</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>+ "
                                                          &nbsp;&lt;localSearch&gt;"</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>+ " &nbsp;
                                                          &nbsp;&lt;acceptor&gt;"</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>+ " &nbsp; &nbsp;
&nbsp;&lt;planningEntityTabuSize&gt;7&lt;/planningEntityTabuSize&gt;"</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>+ " &nbsp;
                                                          &nbsp;&lt;/acceptor&gt;"</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>+ " &nbsp;
                                                          &nbsp;&lt;forager&gt;"</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>+ " &nbsp; &nbsp;
&nbsp;&lt;minimalAcceptedSelection&gt;1000&lt;/minimalAcceptedSelection&gt;"</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>+ " &nbsp;
                                                          &nbsp;&lt;/forager&gt;"&nbsp;</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>+ "
                                                          &nbsp;&lt;/localSearch&gt;"&nbsp;</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>+
                                                          "&lt;/solver&gt;";</div>
                                                          <div><br>
                                                          </div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>byte
                                                          b[] =
                                                          t.getBytes();</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>ByteArrayInputStream



                                                          bt = new
                                                          ByteArrayInputStream(b);</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>SolverFactory

                                                          solverFactory
                                                          = new
XmlSolverFactory().configure(bt);</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>Solver
                                                          solver =
                                                          solverFactory.buildSolver();</div>
                                                          <div><br>
                                                          </div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>List&lt;CloudComputer&gt;



                                                          computerList =
                                                          new
                                                          ArrayList&lt;CloudComputer&gt;();</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>computerList.add(new



                                                          CloudComputer(1L,

                                                          "Computador
                                                          1", 3, 2, 2,
                                                          110));</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>computerList.add(new



                                                          CloudComputer(2L,

                                                          "Computador
                                                          2", 12, 8, 3,
                                                          400));</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>computerList.add(new



                                                          CloudComputer(3L,

                                                          "Computador
                                                          3", 6, 6, 4,
                                                          300));</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>computerList.add(new



                                                          CloudComputer(4L,

                                                          "Computador
                                                          4", 18, 12, 8,
                                                          1000));</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>computerList.add(new



                                                          CloudComputer(5L,

                                                          "Computador
                                                          5", 8, 4, 6,
                                                          800));</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>computerList.add(new



                                                          CloudComputer(6L,

                                                          "Computador
                                                          6", 9, 7, 9,
                                                          1000));</div>
                                                          <div><br>
                                                          </div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>List&lt;CloudProcess&gt;



                                                          processList =
                                                          new
                                                          ArrayList&lt;CloudProcess&gt;();</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>processList.add(new



                                                          CloudProcess(11L,
                                                          2, 2, 2));</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>processList.add(new



                                                          CloudProcess(12L,
                                                          4, 4, 2));</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>processList.add(new



                                                          CloudProcess(13L,
                                                          1, 1, 3));</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>processList.add(new



                                                          CloudProcess(14L,
                                                          7, 3, 5));</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>processList.add(new



                                                          CloudProcess(15L,
                                                          5, 8, 3));</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>processList.add(new



                                                          CloudProcess(16L,
                                                          9, 2, 2));</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>processList.add(new



                                                          CloudProcess(17L,
                                                          6, 5, 6));</div>
                                                          <div><br>
                                                          </div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>CloudBalance

                                                          cloudBalance =
                                                          new
                                                          CloudBalance();</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>cloudBalance.setId(0L);</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>cloudBalance.setComputerList(computerList);</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>cloudBalance.setProcessList(processList);</div>
                                                          <div><br>
                                                          </div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>//
                                                          Solve the
                                                          problem</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>solver.setPlanningProblem(cloudBalance);</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>solver.solve();</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>CloudBalance

                                                          solvedCloudBalance
                                                          =
                                                          (CloudBalance)
solver.getBestSolution();</div>
                                                          <div><br>
                                                          </div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>//
                                                          Display the
                                                          result</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>System.out.println("\nSolved



                                                          cloudBalance
                                                          with 5
                                                          computers and
                                                          6
                                                          processes:\n"</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>+
toDisplayString(solvedCloudBalance));</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>}</div>
                                                          <div><br>
                                                          </div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>public
                                                          static String
                                                          toDisplayString(CloudBalance

                                                          cloudBalance)
                                                          {</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>StringBuilder

                                                          displayString
                                                          = new
                                                          StringBuilder();</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>for
                                                          (CloudProcess
                                                          process :
                                                          cloudBalance.getProcessList())
                                                          {</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>CloudComputer

                                                          computer =
                                                          process.getComputer();</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>displayString.append("
&nbsp;").append(process.getLabel())</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>.append("

                                                          -&gt; ")</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>.append(computer



                                                          == null ? null
                                                          :
                                                          computer.getLabel())</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>.append("\n");</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>}</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>return
displayString.toString();</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>}</div>
                                                          <div>}</div>
                                                          <div><br>
                                                          </div>
                                                          </div>
                                                          <div>-------------</div>
                                                        </div>
                                                      </div>
                                                      <div
                                                        class="gmail_extra"><br>
                                                        <br>
                                                        <div
                                                          class="gmail_quote">2013/1/28


                                                          Geoffrey De
                                                          Smet <span
                                                          dir="ltr">&lt;<a
moz-do-not-send="true" 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">
                                                          The value of a
                                                          variable of an
                                                          entity starts
                                                          out as null
                                                          during
                                                          construction
                                                          heuristics,
                                                          even if it's
                                                          not nullable.<br>
                                                          <br>
                                                          The usual
                                                          trick is to
                                                          add null safe
                                                          getters:<br>
                                                          <br>
                                                          public class
                                                          BedDesignation
                                                          {<br>
                                                          <br>
                                                          &nbsp;&nbsp; // bed is
                                                          planning
                                                          variable<br>
                                                          &nbsp; ...<br>
                                                          &nbsp; public
                                                          Departement
                                                          getDepartment()
                                                          {<br>
                                                          &nbsp;&nbsp;&nbsp;&nbsp; if (bed
                                                          == null) {
                                                          return null;}<br>
                                                          &nbsp;&nbsp;&nbsp;&nbsp; return
                                                          bed.getRoom().getDepartement()<br>
                                                          &nbsp; }<br>
                                                          }<br>
                                                          <br>
                                                          <br>
                                                          <div>Op
                                                          28-01-13
                                                          15:13, Andr&eacute;
                                                          Fr&oacute;es schreef:<br>
                                                          </div>
                                                          <blockquote
                                                          type="cite">
                                                          <div dir="ltr">I've

                                                          implemented it
                                                          to see how it
                                                          would work,
                                                          now I got
                                                          another error:
                                                          <div><br>
                                                          </div>
                                                          <div>---------------</div>
                                                          <div><br>
                                                          </div>
                                                          <div>
                                                          <div>12:10:41.357

                                                          [main] INFO
                                                          &nbsp;o.d.p.core.solver.DefaultSolver
                                                          - Solving
                                                          started: time
                                                          spend (302),
                                                          score (null),
                                                          new best score
                                                          (null), random
                                                          seed (0).</div>
                                                          <div>Exception
                                                          in thread
                                                          "main"
                                                          Exception
                                                          executing
                                                          consequence
                                                          for rule
                                                          "requiredCpuPowerTotal"
                                                          in
                                                          com.swa.planner.domain.rule:
java.lang.NullPointerException</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleException(DefaultConsequenceExceptionHandler.java:39)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1297)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1221)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1456)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:710)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:674)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.planner.core.score.director.drools.DroolsScoreDirector.calculateScore(DroolsScoreDirector.java:177)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.planner.core.solver.scope.DefaultSolverScope.calculateScore(DefaultSolverScope.java:92)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.planner.core.phase.AbstractSolverPhaseScope.calculateScore(AbstractSolverPhaseScope.java:120)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.planner.core.constructionheuristic.greedyFit.decider.DefaultGreedyDecider.processMove(DefaultGreedyDecider.java:136)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.planner.core.constructionheuristic.greedyFit.decider.DefaultGreedyDecider.doMove(DefaultGreedyDecider.java:110)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.planner.core.constructionheuristic.greedyFit.decider.DefaultGreedyDecider.decideNextStep(DefaultGreedyDecider.java:82)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.planner.core.constructionheuristic.greedyFit.DefaultGreedyFitSolverPhase.solve(DefaultGreedyFitSolverPhase.java:65)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.planner.core.solver.DefaultSolver.runSolverPhases(DefaultSolver.java:190)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.planner.core.solver.DefaultSolver.solve(DefaultSolver.java:155)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
com.swa.planner.domain.CloudTest.main(CloudTest.java:65)</div>
                                                          <div>Caused
                                                          by:
                                                          java.lang.NullPointerException</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
                                                          java.lang.String.&lt;init&gt;(Unknown
                                                          Source)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.mvel2.util.ErrorUtil.rewriteIfNeeded(ErrorUtil.java:12)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.mvel2.compiler.ExpressionCompiler._compile(ExpressionCompiler.java:302)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.mvel2.compiler.ExpressionCompiler.compile(ExpressionCompiler.java:62)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
                                                          org.mvel2.MVEL.compileExpression(MVEL.java:810)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.base.mvel.MVELCompilationUnit.compile(MVELCompilationUnit.java:435)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.base.mvel.MVELCompilationUnit.getCompiledExpression(MVELCompilationUnit.java:238)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.rule.constraint.MvelConstraint.createMvelConditionEvaluator(MvelConstraint.java:206)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.rule.constraint.MvelConstraint.evaluate(MvelConstraint.java:190)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.rule.constraint.MvelConstraint.isAllowed(MvelConstraint.java:157)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:137)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.reteoo.CompositeObjectSinkAdapter.doPropagateAssertObject(CompositeObjectSinkAdapter.java:497)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:382)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:235)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:240)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:350)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.common.SimpleBeliefSystem.insert(SimpleBeliefSystem.java:38)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.common.TruthMaintenanceSystem.addLogicalDependency(TruthMaintenanceSystem.java:204)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.common.TruthMaintenanceSystem.addLogicalDependency(TruthMaintenanceSystem.java:176)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:231)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:903)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.base.DefaultKnowledgeHelper.insertLogical(DefaultKnowledgeHelper.java:245)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.base.DefaultKnowledgeHelper.insertLogical(DefaultKnowledgeHelper.java:210)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.base.DefaultKnowledgeHelper.insertLogical(DefaultKnowledgeHelper.java:205)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
com.swa.planner.domain.rule.Rule_requiredCpuPowerTotal_d2d9e4332c804bacac7861ac867eb4bd.defaultConsequence(Rule_requiredCpuPowerTotal_d2d9e4332c804bacac7861ac867eb4bd.java:14)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
                                                          com.swa.planner.domain.rule.Rule_requiredCpuPowerTotal_d2d9e4332c804bacac7861ac867eb4bdDefaultConsequenceInvokerGenerated.evaluate(Unknown




                                                          Source)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
                                                          com.swa.planner.domain.rule.Rule_requiredCpuPowerTotal_d2d9e4332c804bacac7861ac867eb4bdDefaultConsequenceInvoker.evaluate(Unknown




                                                          Source)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1287)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>... 14
                                                          more</div>
                                                          </div>
                                                          <div><br>
                                                          </div>
                                                          <div>-----------------</div>
                                                          <div><br>
                                                          </div>
                                                          <div>this one
                                                          i have no
                                                          clue&nbsp;</div>
                                                          </div>
                                                          <div
                                                          class="gmail_extra"><br>
                                                          <br>
                                                          <div
                                                          class="gmail_quote">2013/1/28


                                                          Andr&eacute; Fr&oacute;es <span
                                                          dir="ltr">&lt;<a
moz-do-not-send="true" href="mailto:arfmoraes@gmail.com" target="_blank">arfmoraes@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 dir="ltr">
                                                          <div>Hello
                                                          there, i'm
                                                          getting this
                                                          error:</div>
                                                          <div><br>
                                                          </div>
                                                          <div>-------------------</div>
                                                          <div>
                                                          <div>
                                                          11:26:50.394
                                                          [main] INFO
                                                          &nbsp;o.d.p.core.solver.DefaultSolver
                                                          - Solving
                                                          started: time
                                                          spend (187),
                                                          score (null),
                                                          new best score
                                                          (null), random
                                                          seed (0).</div>
                                                          <div>Exception
                                                          in thread
                                                          "main"
                                                          java.lang.IllegalStateException:
                                                          The
                                                          selectionOrder
                                                          (DECREASING_DIFFICULTY)


                                                          can not be
                                                          used on a
                                                          PlanningEntity
                                                          (com.swa.planner.domain.CloudProcess)


                                                          that has no
                                                          support for
                                                          difficulty
                                                          sorting. Check
                                                          the
                                                          @PlanningEntity
                                                          annotation.</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.planner.core.heuristic.selector.entity.PlanningEntitySelector.validate(PlanningEntitySelector.java:53)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.planner.core.heuristic.selector.entity.PlanningEntitySelector.phaseStarted(PlanningEntitySelector.java:45)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.planner.core.constructionheuristic.greedyFit.selector.GreedyPlanningEntitySelector.phaseStarted(GreedyPlanningEntitySelector.java:41)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.planner.core.constructionheuristic.greedyFit.DefaultGreedyFitSolverPhase.phaseStarted(DefaultGreedyFitSolverPhase.java:111)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.planner.core.constructionheuristic.greedyFit.DefaultGreedyFitSolverPhase.solve(DefaultGreedyFitSolverPhase.java:57)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.planner.core.solver.DefaultSolver.runSolverPhases(DefaultSolver.java:190)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
org.drools.planner.core.solver.DefaultSolver.solve(DefaultSolver.java:155)</div>
                                                          <div><span
                                                          style="white-space:pre-wrap">
                                                          </span>at
com.swa.planner.domain.CloudTest.main(CloudTest.java:51)</div>
                                                          <div>-------------------------</div>
                                                          <div><br>
                                                          </div>
                                                          <div>I know
                                                          why it is
                                                          happening
                                                          though (at
                                                          least i think
                                                          so), but will
                                                          I have to
                                                          implement the
                                                          comparator to
                                                          every planner
                                                          I do or is
                                                          there any
                                                          other way to
                                                          make it work?</div>
                                                          <div><br>
                                                          </div>
                                                          <div>I'm
                                                          reproducing
                                                          the example
                                                          from the
                                                          guide, when it
                                                          passes the
                                                          drools rules
                                                          it gives that
                                                          message. I
                                                          didn't
                                                          implement
                                                          CloudComputerStrengthComparator
                                                          neither&nbsp;CloudProcessDifficultyComparator,



                                                          will I have to
                                                          implement
                                                          those so this
                                                          example works?</div>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          <br>
                                                          </div>
                                                          <br>
                                                          <fieldset></fieldset>
                                                          <br>
                                                          <pre>_______________________________________________
rules-users mailing list
<a moz-do-not-send="true" href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a>
<a moz-do-not-send="true" 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
                                                          moz-do-not-send="true"
href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a><br>
                                                          <a
                                                          moz-do-not-send="true"
href="https://lists.jboss.org/mailman/listinfo/rules-users"
                                                          target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
                                                          <br>
                                                          </blockquote>
                                                        </div>
                                                        <br>
                                                      </div>
                                                      <br>
                                                      <fieldset></fieldset>
                                                      <br>
                                                      <pre>_______________________________________________
rules-users mailing list
<a moz-do-not-send="true" href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a>
<a moz-do-not-send="true" href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a>
</pre>
                                                    </blockquote>
                                                    <br>
                                                  </div>
                                                </div>
                                              </div>
                                              <br>
_______________________________________________<br>
                                              rules-users mailing list<br>
                                              <a moz-do-not-send="true"
href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a><br>
                                              <a moz-do-not-send="true"
href="https://lists.jboss.org/mailman/listinfo/rules-users"
                                                target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
                                              <br>
                                            </blockquote>
                                          </div>
                                          <br>
                                        </div>
                                      </div>
                                    </div>
                                  </blockquote>
                                </div>
                                <br>
                              </div>
                              <br>
                              <fieldset></fieldset>
                              <br>
                              <pre>_______________________________________________
rules-users mailing list
<a moz-do-not-send="true" href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a>
<a moz-do-not-send="true" href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a>
</pre>
                            </blockquote>
                            <br>
                          </div>
                        </div>
                      </div>
                      <br>
                      _______________________________________________<br>
                      rules-users mailing list<br>
                      <a moz-do-not-send="true"
                        href="mailto:rules-users@lists.jboss.org"
                        target="_blank">rules-users@lists.jboss.org</a><br>
                      <a moz-do-not-send="true"
                        href="https://lists.jboss.org/mailman/listinfo/rules-users"
                        target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
                      <br>
                    </blockquote>
                  </div>
                  <br>
                </div>
                <br>
                <fieldset></fieldset>
                <br>
                <pre>_______________________________________________
rules-users mailing list
<a moz-do-not-send="true" href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a>
<a moz-do-not-send="true" 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 moz-do-not-send="true"
              href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
            <a moz-do-not-send="true"
              href="https://lists.jboss.org/mailman/listinfo/rules-users"
              target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
            <br>
          </blockquote>
        </div>
        <br>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
rules-users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a>
<a class="moz-txt-link-freetext" href="https://lists.jboss.org/mailman/listinfo/rules-users">https://lists.jboss.org/mailman/listinfo/rules-users</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>