ruleflow-group + lock-on-activate may cause a ClassCastException. import org.drools.Person; import org.drools.Cheese; rule R1 ruleflow-group "group1" lock-on-active true when $p : Person() then $p.setName("John"); update ($p); end rule R2 ruleflow-group "group1" lock-on-active true when $p : Person( name == null ) forall ( Cheese ( type == "cheddar" )) then end Exception executing consequence for rule "R1" in defaultpkg: java.lang.ClassCastException: java.lang.Boolean cannot be cast to org.drools.spi.Activation at org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleException(DefaultConsequenceExceptionHandler.java:39) at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1287) at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1212) at org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1446) at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:710) at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:674) at org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:230) ... Caused by: java.lang.ClassCastException: java.lang.Boolean cannot be cast to org.drools.spi.Activation at org.drools.reteoo.RuleTerminalNode.retractLeftTuple(RuleTerminalNode.java:309) at org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateRetractLeftTuple(SingleLeftTupleSinkAdapter.java:224) at org.drools.reteoo.SingleLeftTupleSinkAdapter.propagateRetractLeftTuple(SingleLeftTupleSinkAdapter.java:98) at org.drools.reteoo.NotNode.retractLeftTuple(NotNode.java:216) at org.drools.reteoo.LeftTupleSource.doModifyLeftTuple(LeftTupleSource.java:286)
Fixed by https://github.com/droolsjbpm/drools/commit/9639aa53e1b0af36ec12bec6548c3055ffed04cd
verified in patch 843917