[rules-users] Two bugs(?) of drools 5.3

Miles Wen miles.wy.1 at gmail.com
Wed Dec 28 01:35:30 EST 2011


Hi all,
    I'm using drools 5.3.0.Final.And I think I found two possibly bugs:

1): drl compilation failed when encountering multiple continuous '!' (a.k.a
'not' operator)s.for example:

rule "out"
    when
        Msg(!!!false)
    then
end

the code above won't compile, but 'Msg(!false)' compiles correctly. I
remember there's no such problems when using drools 5.0, this caused some
incompatibility issues in our system...

2): Weird exception thrown:  java.lang.ClassCastException:
org.drools.reteoo.InitialFactImpl cannot be cast to XXX..., for example:

rule "test"
    when
        l1:Msg(str == 'test') and
        l2:Msg(!bool) or
        eval(!false)
    then
end

this code above throws exception at runtime:

org.drools.RuntimeDroolsException: Unexpected exception executing action
org.drools.reteoo.ReteooWorkingMemory$WorkingMemoryReteAssertAction at 743fbbfc
    at
org.drools.common.AbstractWorkingMemory.executeQueuedActions(AbstractWorkingMemory.java:977)
    at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:315)
    at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:291)
    at
org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:886)
    at
org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:845)
    at
org.drools.impl.StatefulKnowledgeSessionImpl.insert(StatefulKnowledgeSessionImpl.java:255)
    at com.sample.DroolsTest.main(DroolsTest.java:56)
Caused by: org.drools.RuntimeDroolsException:
com.sample.Rule_testEval0Invoker at 3e1b05a2 : java.lang.ClassCastException:
org.drools.reteoo.InitialFactImpl cannot be cast to com.sample.Msg
    at org.drools.rule.EvalCondition.isAllowed(EvalCondition.java:119)
    at
org.drools.reteoo.EvalConditionNode.assertLeftTuple(EvalConditionNode.java:178)
    at
org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:197)
    at
org.drools.reteoo.SingleLeftTupleSinkAdapter.createAndPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:146)
    at
org.drools.reteoo.LeftInputAdapterNode.assertObject(LeftInputAdapterNode.java:158)
    at
org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:59)
    at
org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:215)
    at
org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:244)
    at org.drools.reteoo.Rete.assertObject(Rete.java:107)
    at
org.drools.reteoo.ReteooRuleBase.assertObject(ReteooRuleBase.java:284)
    at
org.drools.reteoo.ReteooWorkingMemory$WorkingMemoryReteAssertAction.execute(ReteooWorkingMemory.java:404)
    at
org.drools.common.AbstractWorkingMemory.executeQueuedActions(AbstractWorkingMemory.java:975)
    ... 6 more
Caused by: java.lang.ClassCastException: org.drools.reteoo.InitialFactImpl
cannot be cast to com.sample.Msg
    at com.sample.Rule_testEval0Invoker.evaluate(Unknown Source)
    at org.drools.rule.EvalCondition.isAllowed(EvalCondition.java:114)
    ... 17 more

Is there any workaround for those problems? especially the 2nd one...

Any help would be appreciated,
Thanks!

-- 
Regards.
Miles. Wen
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20111228/1289d9dd/attachment.html 


More information about the rules-users mailing list