R: [rules-users] Is 3.1 M1 backward compatible?

Edson Tirelli tirelli at post.com
Wed Feb 21 12:11:33 EST 2007


   Dandrea,

   I see the problem.
   I will investigate a bit and let you know in a couple hours.

   Regards,
    Edson

  

Dandrea Francesco wrote:

> Yes, but I don't think that the cases below apply to my test.
> All my facts have a default constructor and they doesn't use the final 
> keyword.
> The native data types are used in the LHS only  (boolean an integer 
> types) in this way for example:
>
> $allarme : AllarmeMisura(aggregated==*false*, networkState=="Open")
>
> which i think is allowed (right?).
> The base error is a class cast exception it seems:
> __
>
> _java.lang.ClassCastException_: 
> it.telecomitalia.netbox.AggregatedAlarmShadowProxy
>
> at 
> org.drools.base.it.telecomitalia.netbox.AllarmeTf$getReferencedElement.getValue(Unknown 
> Source)
>
> at 
> org.drools.base.ClassFieldExtractor.getValue(_ClassFieldExtractor.java:79_)
>
> at org.drools.rule.Declaration.getValue(_Declaration.java:156_)
>
> at 
> it.telecomitalia.netbox.Rule_Nuovo_Allarme_Misura_No_Allarme_Oggetto_0Predicate0Invoker.evaluate(_Rule_Nuovo_Allarme_Misura_No_Allarme_Oggetto_0Predicate0Invoker.java:14_)
>
> at 
> org.drools.rule.PredicateConstraint.isAllowedCachedRight(_PredicateConstraint.java:190_)
>
>
> AggregatedAlarm is the base class of AllarmeTf, and the LHS of the 
> rule "Nuovo Allarme Misura No Allarme Oggetto" that gives an exception 
> is this:
>
> $allarme : AllarmeMisura(aggregated==*false*, networkState=="Open")
>
> *not* AllarmeTf( $tfAllarme :referencedElement ->( 
> $tfAllarme.equals($allarme.getReferencedElement().getReferencedTf())))
>
> To me it seem ok.....
>  
> Am I doing something wrong?
>
>  
>
>     ------------------------------------------------------------------------
>     *Da:* rules-users-bounces at lists.jboss.org
>     [mailto:rules-users-bounces at lists.jboss.org] *Per conto di *Mark
>     Proctor
>     *Inviato:* mercoledì 21 febbraio 2007 15.41
>     *A:* Rules Users List
>     *Oggetto:* Re: [rules-users] Is 3.1 M1 backward compatible?
>
>     The syntax is backwards compatible. However as the release notes
>     mention we no longer autobox primitives, as you can now work
>     directly with them, which will cause issues in  old drls that
>     assumed numbers are wrapped. Also pojos must have a default
>     constructor and not use the final keyword at the class and method
>     level - we are actively looking to add more flexability to this case.
>
>     Mark
>     Dandrea Francesco wrote:
>
>>Hi all, 
>>the attached example runs ok (slow but ok) on JBoss Rules 3.0.5
>>Now when I run it with 3.1M1 I have an exception (I pasted it at the end
>>of the mail).
>>Is 3.1 M1 backward compatible? Is this a bug? Should I change the code
>>in some way?
>>Thanks a lot
>> 
>>org.drools.RuntimeDroolsException: Exception executing predicate
>>it.telecomitalia.netbox.Rule_Nuovo_Allarme_Misura_No_Allarme_Oggetto_0Pr
>>edicate0Invoker at 60bd060e
>>
>>at
>>org.drools.rule.PredicateConstraint.isAllowedCachedRight(PredicateConstr
>>aint.java:196)
>>
>>at
>>org.drools.common.SingleBetaConstraints.isAllowedCachedRight(SingleBetaC
>>onstraints.java:111)
>>
>>at org.drools.reteoo.NotNode.assertObject(NotNode.java:149)
>>
>>at
>>org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(Compo
>>siteObjectSinkAdapter.java:313)
>>
>>at
>>org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:163)
>>
>>at org.drools.reteoo.Rete.assertObject(Rete.java:121)
>>
>>at
>>org.drools.reteoo.ReteooRuleBase.assertObject(ReteooRuleBase.java:196)
>>
>>at
>>org.drools.reteoo.ReteooWorkingMemory.doAssertObject(ReteooWorkingMemory
>>.java:68)
>>
>>at
>>org.drools.common.AbstractWorkingMemory.assertObject(AbstractWorkingMemo
>>ry.java:724)
>>
>>at
>>org.drools.base.DefaultKnowledgeHelper.assertObject(DefaultKnowledgeHelp
>>er.java:72)
>>
>>at
>>org.drools.base.DefaultKnowledgeHelper.assertObject(DefaultKnowledgeHelp
>>er.java:66)
>>
>>at
>>it.telecomitalia.netbox.Rule_Nuovo_Allarme_Misura_No_Allarme_Oggetto_0.c
>>onsequence(Rule_Nuovo_Allarme_Misura_No_Allarme_Oggetto_0.java:17)
>>
>>at
>>it.telecomitalia.netbox.Rule_Nuovo_Allarme_Misura_No_Allarme_Oggetto_0Co
>>nsequenceInvoker.evaluate(Rule_Nuovo_Allarme_Misura_No_Allarme_Oggetto_0
>>ConsequenceInvoker.java:22)
>>
>>at
>>org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:467)
>>
>>at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:431)
>>
>>at
>>org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemo
>>ry.java:360)
>>
>>at
>>org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemo
>>ry.java:341)
>>
>>at
>>it.telecomitalia.netbox.MainProvaClass.fireRuleEngineProva(MainProvaClas
>>s.java:85)
>>
>>at it.telecomitalia.netbox.MainProvaClass.main(MainProvaClass.java:23)
>>
>>Caused by: java.lang.ClassCastException:
>>it.telecomitalia.netbox.AggregatedAlarmShadowProxy
>>
>>at
>>org.drools.base.it.telecomitalia.netbox.AllarmeTf$getReferencedElement.g
>>etValue(Unknown Source)
>>
>>at
>>org.drools.base.ClassFieldExtractor.getValue(ClassFieldExtractor.java:79
>>)
>>
>>at org.drools.rule.Declaration.getValue(Declaration.java:156)
>>
>>at
>>it.telecomitalia.netbox.Rule_Nuovo_Allarme_Misura_No_Allarme_Oggetto_0Pr
>>edicate0Invoker.evaluate(Rule_Nuovo_Allarme_Misura_No_Allarme_Oggetto_0P
>>redicate0Invoker.java:14)
>>
>>at
>>org.drools.rule.PredicateConstraint.isAllowedCachedRight(PredicateConstr
>>aint.java:190)
>>
>>... 18 more
>>
>>org.drools.RuntimeDroolsException: Exception executing predicate
>>it.telecomitalia.netbox.Rule_Nuovo_Allarme_Misura_No_Allarme_Oggetto_0Pr
>>edicate0Invoker at 60bd060e
>>
>>at
>>org.drools.rule.PredicateConstraint.isAllowedCachedRight(PredicateConstr
>>aint.java:196)
>>
>>at
>>org.drools.common.SingleBetaConstraints.isAllowedCachedRight(SingleBetaC
>>onstraints.java:111)
>>
>>at org.drools.reteoo.NotNode.assertObject(NotNode.java:149)
>>
>>at
>>org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(Compo
>>siteObjectSinkAdapter.java:313)
>>
>>at
>>org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:163)
>>
>>at org.drools.reteoo.Rete.assertObject(Rete.java:121)
>>
>>at
>>org.drools.reteoo.ReteooRuleBase.assertObject(ReteooRuleBase.java:196)
>>
>>at
>>org.drools.reteoo.ReteooWorkingMemory.doAssertObject(ReteooWorkingMemory
>>.java:68)
>>
>>at
>>org.drools.common.AbstractWorkingMemory.assertObject(AbstractWorkingMemo
>>ry.java:724)
>>
>>at
>>org.drools.base.DefaultKnowledgeHelper.assertObject(DefaultKnowledgeHelp
>>er.java:72)
>>
>>at
>>org.drools.base.DefaultKnowledgeHelper.assertObject(DefaultKnowledgeHelp
>>er.java:66)
>>
>>at
>>it.telecomitalia.netbox.Rule_Nuovo_Allarme_Misura_No_Allarme_Oggetto_0.c
>>onsequence(Rule_Nuovo_Allarme_Misura_No_Allarme_Oggetto_0.java:17)
>>
>>at
>>it.telecomitalia.netbox.Rule_Nuovo_Allarme_Misura_No_Allarme_Oggetto_0Co
>>nsequenceInvoker.evaluate(Rule_Nuovo_Allarme_Misura_No_Allarme_Oggetto_0
>>ConsequenceInvoker.java:22)
>>
>>at
>>org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:467)
>>
>>at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:431)
>>
>>at
>>org.drools.common.AbstractWorkingMemory.doOtherwise(AbstractWorkingMemor
>>y.java:384)
>>
>>at
>>org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemo
>>ry.java:366)
>>
>>at
>>org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemo
>>ry.java:341)
>>
>>at
>>it.telecomitalia.netbox.MainProvaClass.fireRuleEngineProva(MainProvaClas
>>s.java:85)
>>
>>at it.telecomitalia.netbox.MainProvaClass.main(MainProvaClass.java:23)
>>
>>Caused by: java.lang.ClassCastException:
>>it.telecomitalia.netbox.AggregatedAlarmShadowProxy
>>
>>at
>>org.drools.base.it.telecomitalia.netbox.AllarmeTf$getReferencedElement.g
>>etValue(Unknown Source)
>>
>>at
>>org.drools.base.ClassFieldExtractor.getValue(ClassFieldExtractor.java:79
>>)
>>
>>at org.drools.rule.Declaration.getValue(Declaration.java:156)
>>
>>at
>>it.telecomitalia.netbox.Rule_Nuovo_Allarme_Misura_No_Allarme_Oggetto_0Pr
>>edicate0Invoker.evaluate(Rule_Nuovo_Allarme_Misura_No_Allarme_Oggetto_0P
>>redicate0Invoker.java:14)
>>
>>at
>>org.drools.rule.PredicateConstraint.isAllowedCachedRight(PredicateConstr
>>aint.java:190)
>>
>>... 19 more
>>
>>org.drools.spi.ConsequenceException: org.drools.RuntimeDroolsException:
>>Exception executing predicate
>>it.telecomitalia.netbox.Rule_Nuovo_Allarme_Misura_No_Allarme_Oggetto_0Pr
>>edicate0Invoker at 60bd060e
>>
>>at
>>org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:471)
>>
>>at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:431)
>>
>>at
>>org.drools.common.AbstractWorkingMemory.doOtherwise(AbstractWorkingMemor
>>y.java:384)
>>
>>at
>>org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemo
>>ry.java:366)
>>
>>at
>>org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemo
>>ry.java:341)
>>
>>at
>>it.telecomitalia.netbox.MainProvaClass.fireRuleEngineProva(MainProvaClas
>>s.java:85)
>>
>>at it.telecomitalia.netbox.MainProvaClass.main(MainProvaClass.java:23)
>>
>>Caused by: org.drools.RuntimeDroolsException: Exception executing
>>predicate
>>it.telecomitalia.netbox.Rule_Nuovo_Allarme_Misura_No_Allarme_Oggetto_0Pr
>>edicate0Invoker at 60bd060e
>>
>>at
>>org.drools.rule.PredicateConstraint.isAllowedCachedRight(PredicateConstr
>>aint.java:196)
>>
>>at
>>org.drools.common.SingleBetaConstraints.isAllowedCachedRight(SingleBetaC
>>onstraints.java:111)
>>
>>at org.drools.reteoo.NotNode.assertObject(NotNode.java:149)
>>
>>at
>>org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(Compo
>>siteObjectSinkAdapter.java:313)
>>
>>at
>>org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:163)
>>
>>at org.drools.reteoo.Rete.assertObject(Rete.java:121)
>>
>>at
>>org.drools.reteoo.ReteooRuleBase.assertObject(ReteooRuleBase.java:196)
>>
>>at
>>org.drools.reteoo.ReteooWorkingMemory.doAssertObject(ReteooWorkingMemory
>>.java:68)
>>
>>at
>>org.drools.common.AbstractWorkingMemory.assertObject(AbstractWorkingMemo
>>ry.java:724)
>>
>>at
>>org.drools.base.DefaultKnowledgeHelper.assertObject(DefaultKnowledgeHelp
>>er.java:72)
>>
>>at
>>org.drools.base.DefaultKnowledgeHelper.assertObject(DefaultKnowledgeHelp
>>er.java:66)
>>
>>at
>>it.telecomitalia.netbox.Rule_Nuovo_Allarme_Misura_No_Allarme_Oggetto_0.c
>>onsequence(Rule_Nuovo_Allarme_Misura_No_Allarme_Oggetto_0.java:17)
>>
>>at
>>it.telecomitalia.netbox.Rule_Nuovo_Allarme_Misura_No_Allarme_Oggetto_0Co
>>nsequenceInvoker.evaluate(Rule_Nuovo_Allarme_Misura_No_Allarme_Oggetto_0
>>ConsequenceInvoker.java:22)
>>
>>at
>>org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:467)
>>
>>... 6 more
>>
>>Caused by: java.lang.ClassCastException:
>>it.telecomitalia.netbox.AggregatedAlarmShadowProxy
>>
>>at
>>org.drools.base.it.telecomitalia.netbox.AllarmeTf$getReferencedElement.g
>>etValue(Unknown Source)
>>
>>at
>>org.drools.base.ClassFieldExtractor.getValue(ClassFieldExtractor.java:79
>>)
>>
>>at org.drools.rule.Declaration.getValue(Declaration.java:156)
>>
>>at
>>it.telecomitalia.netbox.Rule_Nuovo_Allarme_Misura_No_Allarme_Oggetto_0Pr
>>edicate0Invoker.evaluate(Rule_Nuovo_Allarme_Misura_No_Allarme_Oggetto_0P
>>redicate0Invoker.java:14)
>>
>>at
>>org.drools.rule.PredicateConstraint.isAllowedCachedRight(PredicateConstr
>>aint.java:190)
>>
>>... 19 more
>>--------------------------------------------------------------------
>>
>>CONFIDENTIALITY NOTICE
>>
>>This message and its attachments are addressed solely to the persons above and may contain confidential information. If you have received the message in error, be informed that any use of the content hereof is prohibited. Please return it immediately to the sender and delete the message. Should you have any questions, please contact us by replying to webmaster at telecomitalia.it.
>>
>>        Thank you
>>
>>                                        www.telecomitalia.it
>>
>>--------------------------------------------------------------------
>>                        
>>  
>>
>>------------------------------------------------------------------------
>>
>>_______________________________________________
>>rules-users mailing list
>>rules-users at lists.jboss.org
>>https://lists.jboss.org/mailman/listinfo/rules-users
>>  
>>
>
> --------------------------------------------------------------------
> CONFIDENTIALITY NOTICE
> This message and its attachments are addressed solely to the persons
> above and may contain confidential information. If you have received
> the message in error, be informed that any use of the content hereof
> is prohibited. Please return it immediately to the sender and delete
> the message. Should you have any questions, please contact us by
> replying to webmaster at telecomitalia.it 
> <mailto:webmaster at telecomitalia.it>.
>         Thank you
>                                         www.telecomitalia.it 
> <http://www.telecomitalia.it>
> --------------------------------------------------------------------
>
>------------------------------------------------------------------------
>
>_______________________________________________
>rules-users mailing list
>rules-users at lists.jboss.org
>https://lists.jboss.org/mailman/listinfo/rules-users
>  
>


-- 
 Edson Tirelli
 Software Engineer - JBoss Rules Core Developer
 Office: +55 11 3124-6000
 Mobile: +55 11 9218-4151
 JBoss, a division of Red Hat @ www.jboss.com





More information about the rules-users mailing list