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

Dandrea Francesco francesco.dandrea at telecomitalia.it
Wed Feb 21 10:13:00 EST 2007


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.

        Thank you

                                        www.telecomitalia.it

--------------------------------------------------------------------
                        
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20070221/2cbbcf05/attachment.html 


More information about the rules-users mailing list