The following exception is thrown when building complicated rules containing many eval statements: java.lang.ClassCastException: xxxxx cannot be cast to xxxx at org.drools.core.rule.EvalCondition.isAllowed(EvalCondition.java:123) at org.drools.core.phreak.PhreakEvalNode.doLeftInserts(PhreakEvalNode.java:70) ... The root cause could be found from https://issues.jboss.org/browse/DROOLS-1139 "An EvalCondition evaluator needs to be cloned when 2 eval nodes have the same condition, but not the same parent and then cannot be shared. This cloning process is currently incomplete because the eval invoker (generated via ASM) remains the same (same instance) for the 2 evaluators thus resulting in an evaluation with wrong params." A fix has been submitted in the pull request - https://github.com/droolsjbpm/drools/pull/758 Can we apply this fix to our brms production?
Fixed by https://github.com/droolsjbpm/drools/commit/8eadcaaff