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(a)lists.jboss.org
[mailto:rules-users-bounces@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@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@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@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@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(a)telecomitalia.it.
>
> Thank you
>
>
www.telecomitalia.it
>
>--------------------------------------------------------------------
>
>
>
>------------------------------------------------------------------------
>
>_______________________________________________
>rules-users mailing list
>rules-users(a)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(a)telecomitalia.it
<mailto:webmaster@telecomitalia.it>.
Thank you
www.telecomitalia.it
<
http://www.telecomitalia.it>
--------------------------------------------------------------------
------------------------------------------------------------------------
_______________________________________________
rules-users mailing list
rules-users(a)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 @