Hi all, <br>    I&#39;m using drools 5.3.0.Final.And I think I found two possibly bugs:<br><br>1): drl compilation failed when encountering multiple continuous &#39;!&#39; (a.k.a &#39;not&#39; operator)s.for example:<br><br>
rule &quot;out&quot;<br>    when<br>        Msg(!!!false)<br>    then<br>end<br><br>the code above won&#39;t compile, but &#39;Msg(!false)&#39; compiles correctly. I remember there&#39;s no such problems when using drools 5.0, this caused some incompatibility issues in our system...<br>
<br>2): Weird exception thrown:  java.lang.ClassCastException: org.drools.reteoo.InitialFactImpl cannot be cast to XXX..., for example:<br><br>rule &quot;test&quot;<br>    when<br>        l1:Msg(str == &#39;test&#39;) and<br>
        l2:Msg(!bool) or <br>        eval(!false)<br>    then<br>end<br><br>this code above throws exception at runtime: <br><br>org.drools.RuntimeDroolsException: Unexpected exception executing action org.drools.reteoo.ReteooWorkingMemory$WorkingMemoryReteAssertAction@743fbbfc<br>
    at org.drools.common.AbstractWorkingMemory.executeQueuedActions(AbstractWorkingMemory.java:977)<br>    at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:315)<br>    at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:291)<br>
    at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:886)<br>    at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:845)<br>    at org.drools.impl.StatefulKnowledgeSessionImpl.insert(StatefulKnowledgeSessionImpl.java:255)<br>
    at com.sample.DroolsTest.main(DroolsTest.java:56)<br>Caused by: org.drools.RuntimeDroolsException: com.sample.Rule_testEval0Invoker@3e1b05a2 : java.lang.ClassCastException: org.drools.reteoo.InitialFactImpl cannot be cast to com.sample.Msg<br>
    at org.drools.rule.EvalCondition.isAllowed(EvalCondition.java:119)<br>    at org.drools.reteoo.EvalConditionNode.assertLeftTuple(EvalConditionNode.java:178)<br>    at org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:197)<br>
    at org.drools.reteoo.SingleLeftTupleSinkAdapter.createAndPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:146)<br>    at org.drools.reteoo.LeftInputAdapterNode.assertObject(LeftInputAdapterNode.java:158)<br>    at org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:59)<br>
    at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:215)<br>    at org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:244)<br>    at org.drools.reteoo.Rete.assertObject(Rete.java:107)<br>
    at org.drools.reteoo.ReteooRuleBase.assertObject(ReteooRuleBase.java:284)<br>    at org.drools.reteoo.ReteooWorkingMemory$WorkingMemoryReteAssertAction.execute(ReteooWorkingMemory.java:404)<br>    at org.drools.common.AbstractWorkingMemory.executeQueuedActions(AbstractWorkingMemory.java:975)<br>
    ... 6 more<br>Caused by: java.lang.ClassCastException: org.drools.reteoo.InitialFactImpl cannot be cast to com.sample.Msg<br>    at com.sample.Rule_testEval0Invoker.evaluate(Unknown Source)<br>    at org.drools.rule.EvalCondition.isAllowed(EvalCondition.java:114)<br>
    ... 17 more<br><br>Is there any workaround for those problems? especially the 2nd one...<br clear="all"><br>Any help would be appreciated, <br>Thanks!<br><br>-- <br>Regards.<br>Miles. Wen<br><br>