Given the following rule: — import org.joda.time.DateTime; rule "in the past" when exists DateTime( this < new DateTime() ) then System.out.println("in the past"); end — I obtain this exception at runtime while comparing a large number of DateTimes: // java.lang.NoSuchMethodError: org.joda.time.DateTime.compareTo(Lorg/joda/time/DateTime;)I // at ConditionEvaluatorc959ae5f82e8456f9e4f2d8b7e07b19d.evaluate(Unknown Source) // at org.drools.core.rule.constraint.MvelConstraint.evaluate(MvelConstraint.java:217) // at org.drools.core.rule.constraint.MvelConstraint.isAllowed(MvelConstraint.java:174) // at org.drools.core.phreak.PhreakFromNode.checkConstraintsAndPropagate(PhreakFromNode.java:298) // at org.drools.core.phreak.PhreakFromNode.doLeftInserts(PhreakFromNode.java:101) // at org.drools.core.phreak.PhreakFromNode.doNode(PhreakFromNode.java:49) // at org.drools.core.phreak.RuleNetworkEvaluator.innerEval(RuleNetworkEvaluator.java:348) // at org.drools.core.phreak.RuleNetworkEvaluator.doRiaNode(RuleNetworkEvaluator.java:604) // at org.drools.core.phreak.RuleNetworkEvaluator.evalBetaNode(RuleNetworkEvaluator.java:528) // at org.drools.core.phreak.RuleNetworkEvaluator.innerEval(RuleNetworkEvaluator.java:334)
Fixed by https://github.com/droolsjbpm/drools/commit/4a5af55b8
Cherry-picked to 6.0.x branch with https://github.com/droolsjbpm/drools/commit/9f74dbe01
Verified on BRMS 6.0.2 ER3.