Look like a bug in mvel, nothing related with Planner,
File a jira in Drools Expert.
  https://issues.jboss.org/browse/DROOLS

Important: is your planner run 100% reproducible (ignoring this issue)?
So, if you do 2 runs, with logging debug, do you get the exact same output?
In the examples, this is the case.

Op 23-01-13 22:28, Michiel Vermandel schreef:
I am using Drools Planner 5.5.0.Final.
During the running of a unit test I sometimes get a crash with stack-trace shown beneath.
It does not happen all the time, just now and then.
But if it happens the process terminates and no solution is reached.
Any ideas on this?
The stack-trace does not show a lot on which rule is failing...

[Error: incompatible types in statement: boolean (compared from: class be.axi.planner.domain.Task)]
[Near : {... this == lead ....}]
             ^
[Line: 1, Column: 1]
    at org.mvel2.ast.BinaryOperation.<init>(BinaryOperation.java:84)
    at org.mvel2.util.CompilerTools.finalizePayload(CompilerTools.java:118)
    at org.mvel2.compiler.ExpressionCompiler._compile(ExpressionCompiler.java:287)
    at org.mvel2.compiler.ExpressionCompiler.compile(ExpressionCompiler.java:62)
    at org.mvel2.MVEL.compileExpression(MVEL.java:810)
    at org.drools.base.mvel.MVELCompilationUnit.compile(MVELCompilationUnit.java:435)
    at org.drools.base.mvel.MVELCompilationUnit.getCompiledExpression(MVELCompilationUnit.java:238)
    at org.drools.rule.constraint.MvelConstraint.createMvelConditionEvaluator(MvelConstraint.java:206)
    at org.drools.rule.constraint.MvelConstraint.evaluate(MvelConstraint.java:190)
    at org.drools.rule.constraint.MvelConstraint.isAllowed(MvelConstraint.java:157)
    at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:137)
    at org.drools.reteoo.CompositeObjectSinkAdapter.doPropagateAssertObject(CompositeObjectSinkAdapter.java:497)
    at org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:382)
    at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:235)
    at org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:240)
    at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:350)
    at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:311)
    at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:903)
    at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:847)
    at org.drools.planner.core.score.director.drools.DroolsScoreDirector.afterEntityAdded(DroolsScoreDirector.java:103)
    at org.drools.planner.core.heuristic.selector.variable.PlanningVariableWalker.moveIterator(PlanningVariableWalker.java:145)
    at org.drools.planner.core.constructionheuristic.greedyFit.decider.DefaultGreedyDecider.decideNextStep(DefaultGreedyDecider.java:74)
    at org.drools.planner.core.constructionheuristic.greedyFit.DefaultGreedyFitSolverPhase.solve(DefaultGreedyFitSolverPhase.java:65)
    at org.drools.planner.core.solver.DefaultSolver.runSolverPhases(DefaultSolver.java:190)
    at org.drools.planner.core.solver.DefaultSolver.solve(DefaultSolver.java:155)
    at be.axi.planner.app.InspectionSchedule.solve(InspectionSchedule.java:192)
    at be.axi.planner.testcore.AbstractPlanningTestClass.solve(AbstractPlanningTestClass.java:288)
    at be.axi.planner.testcore.AbstractPlanningTestClass.solve(AbstractPlanningTestClass.java:298)
    at be.axi.planner.testcore.AbstractPlanningTestClass.solve(AbstractPlanningTestClass.java:315)
    at be.axi.planner.TaskGroupingTest.communitySuccess02(TaskGroupingTest.java:289)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
    at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

 
-----------------
http://www.codessentials.com - Your essential software, for free!
Follow us at http://twitter.com/#!/Codessentials


_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users