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+nab...@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@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -- Edson Tirelli JBoss Drools Core Development JBoss by Red Hat @ www.jboss.com
_______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users