[rules-users] Apply role to whole class hierarchy

Edson Tirelli ed.tirelli at gmail.com
Fri Jul 27 07:51:47 EDT 2012


   Looks like a bug. :( The code to inherit @role event is there, but
apparently there is something else going on:

https://github.com/droolsjbpm/drools/blob/master/drools-core/src/main/java/org/drools/rule/Package.java#L485

   Please open a JIRA with the information bellow.

   Edson

On Fri, Jul 27, 2012 at 3:01 AM, Joerg Henne
<hennejg+nabble at googlemail.com>wrote:

> Thanks for your help, Edson!
>
> We are using drools 5.4.0.Final via maven.
>
> Maybe I am missing something, so here's a quick overview of what we do. We
> have a model class ButtonEvent which is derived like this:
> ButtonEvent -> ZonedEvent -> VSCPEvent
>
> Then there's a rulebase with something like this:
>
> import test.vscp.VSCPEvent;
> import test.vscp.information.ButtonEvent;
>
> declare VSCPEvent
>     @role( event )
>     @timestamp( timestamp )
>     @expires( 1h )
> end
> declare ButtonEvent
>     @role( event )
>     @timestamp( timestamp )
>     @expires( 1h )
> end
>
> rule "Button long pressed"
>     when
>         b : ButtonEvent( action == Action.PRESSED )
>         not( ButtonEvent( action == Action.RELEASED, this after[0s,1s] b )
> )
>     then
>         ...
> end
>
> What I would have expected is that the second 'declare' statement to be
> unnecessary. However, if I take it away, this is what I get:
>
> java.lang.ClassCastException: org.drools.common.DefaultFactHandle
>         at
>
> org.drools.base.evaluators.AfterEvaluatorDefinition$AfterEvaluator.evaluateCachedRight(AfterEvaluatorDefinition.java:316)
>         at
>
> org.drools.rule.constraint.EvaluatorConstraint.isAllowedCachedRight(EvaluatorConstraint.java:80)
>         at
>
> org.drools.common.SingleBetaConstraints.isAllowedCachedRight(SingleBetaConstraints.java:139)
>         at org.drools.reteoo.NotNode.assertObject(NotNode.java:133)
>         at
>
> org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:59)
>         at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:141)
>         at
>
> org.drools.reteoo.CompositeObjectSinkAdapter.doPropagateAssertObject(CompositeObjectSinkAdapter.java:497)
>         at
>
> org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:382)
>         at
> org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:235)
>         at
> org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:240)
>         at
> org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:337)
>         at
> org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:298)
>         at
>
> org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:888)
>         at
>
> org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:847)
>         at
>
> org.drools.impl.StatefulKnowledgeSessionImpl.insert(StatefulKnowledgeSessionImpl.java:269)
>         ...
>
> Thanks
> Joerg
>
>
>
>
>
> --
> View this message in context:
> http://drools.46999.n3.nabble.com/Apply-role-to-whole-class-hierarchy-tp4018930p4018942.html
> Sent from the Drools: User forum mailing list archive at Nabble.com.
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>



-- 
  Edson Tirelli
  JBoss Drools Core Development
  JBoss by Red Hat @ www.jboss.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20120727/bce431a7/attachment.html 


More information about the rules-users mailing list