[
https://jira.jboss.org/jira/browse/JBRULES-1784?page=com.atlassian.jira.p...
]
Dave Sinclair commented on JBRULES-1784:
----------------------------------------
More info. If a Chassis is asserted first, it works fine. But if the application is
restarted a Slot asserted, the laster a chassis this happens. Here is a stack trace. Also
note that I print out all the objects for the session before the insertion
2008-08-26 14:17:54,718 [http-8443-1] (DroolsService.java:104) DEBUG
com.sungard.ams.internal.service.rules.DroolsService - --------------------------
RULES SERVER OBJECTS BEFORE FIRING -----------------------------
2008-08-26 14:17:54,718 [http-8443-1] (DroolsService.java:111) DEBUG
com.sungard.ams.internal.service.rules.DroolsService - --------------------------
----------------------------------------------------------------
==[AgendaGroupPushedEvent(Traversal]
2008-08-26 14:17:54,718
[http-8443-1] (DroolsService.java:127) DEBUG
com.sungard.ams.internal.service.rules.DroolsService - Inserting ClassName:[Blade
ServerSlot], GUID:[40F70DE0-C30D-D16F-FF3A-C34779854DB8], Revision#:[1], Creation
Date:[Tue Aug 26 14:17:54 EDT 2008], ModDate:[Tue Aug 26 14:17:54 ED
T 2008], ModBy:[david.sinclair], CommonName:[blade server slot 2] of type class
com.sungard.ams.persistence.model.objects.BladeServerSlot
2008-08-26 14:17:54,765 [http-8443-1] (AbstractController.java:75) ERROR
com.sungard.wile.ws.AbstractController - com.sungard.ams.persistence.model.ob
jects.BladeServerSlot cannot be cast to
com.sungard.ams.persistence.model.objects.BladeChassis$$EnhancerByCGLIB$$b843d794
java.lang.ClassCastException: com.sungard.ams.persistence.model.objects.BladeServerSlot
cannot be cast to com.sungard.ams.persistence.model.objects.Bl
adeChassis$$EnhancerByCGLIB$$b843d794
at ASMAccessorImpl_309682341219774624650.getValue(Unknown Source)
at
org.mvel.ast.VariableDeepPropertyNode.getReducedValueAccelerated(VariableDeepPropertyNode.java:22)
at
org.mvel.ast.PropertyASTNode.getReducedValueAccelerated(PropertyASTNode.java:21)
at org.mvel.MVELRuntime.execute(MVELRuntime.java:90)
at org.mvel.CompiledExpression.getValue(CompiledExpression.java:111)
at org.mvel.MVEL.executeExpression(MVEL.java:252)
at
org.drools.base.dataproviders.MVELDataProvider.getResults(MVELDataProvider.java:55)
at org.drools.reteoo.FromNode.assertTuple(FromNode.java:68)
at
org.drools.reteoo.SingleTupleSinkAdapter.createAndPropagateAssertTuple(SingleTupleSinkAdapter.java:55)
at
org.drools.reteoo.LeftInputAdapterNode.assertObject(LeftInputAdapterNode.java:116)
at
org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:318)
at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:162)
at org.drools.reteoo.Rete.assertObject(Rete.java:175)
at org.drools.reteoo.ReteooRuleBase.assertObject(ReteooRuleBase.java:192)
at org.drools.reteoo.ReteooWorkingMemory.doInsert(ReteooWorkingMemory.java:71)
at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:911)
at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:883)
at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:684)
at
com.sungard.ams.internal.service.rules.DroolsService.execute(DroolsService.java:129)
Class Cast exception when using from
------------------------------------
Key: JBRULES-1784
URL:
https://jira.jboss.org/jira/browse/JBRULES-1784
Project: JBoss Drools
Issue Type: Bug
Security Level: Public(Everyone can see)
Affects Versions: 4.0.7
Environment: Windows XP
Reporter: Dave Sinclair
Assignee: Mark Proctor
I have the following rule that should fire for each element in the set from $Chassis
rule 'ChassisSlotCollectionFieldWalker'
agenda-group "Traversal"
no-loop true
dialect "mvel"
when
$Chassis : Chassis ()
$SlotElement : Slot () from $Chassis.slots
then
insert($SlotElement);
end
But whenever I insert a Chassis into memory, I get the following expcetion
Caused by: java.lang.ClassCastException:
com.sungard.ams.persistence.model.objects.BladeServerSlot cannot be cast to
com.sungard.ams.persistence.model
.objects.BladeChassis$$EnhancerByCGLIB$$e5aeb667
at ASMAccessorImpl_248066451222360199260.getValue(Unknown Source)
at
org.mvel.ast.VariableDeepPropertyNode.getReducedValueAccelerated(VariableDeepPropertyNode.java:22)
at
org.mvel.ast.PropertyASTNode.getReducedValueAccelerated(PropertyASTNode.java:21)
at org.mvel.MVELRuntime.execute(MVELRuntime.java:90)
at org.mvel.CompiledExpression.getValue(CompiledExpression.java:111)
at org.mvel.MVEL.executeExpression(MVEL.java:252)
at
org.drools.base.dataproviders.MVELDataProvider.getResults(MVELDataProvider.java:55)
at org.drools.reteoo.FromNode.assertTuple(FromNode.java:68)
at
org.drools.reteoo.SingleTupleSinkAdapter.createAndPropagateAssertTuple(SingleTupleSinkAdapter.java:55)
at
org.drools.reteoo.LeftInputAdapterNode.assertObject(LeftInputAdapterNode.java:116)
at
org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:318)
at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:162)
at org.drools.reteoo.Rete.assertObject(Rete.java:175)
at org.drools.reteoo.ReteooRuleBase.assertObject(ReteooRuleBase.java:192)
at org.drools.reteoo.ReteooWorkingMemory.doInsert(ReteooWorkingMemory.java:71)
at
org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:911)
at
org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:883)
at org.drools.base.DefaultKnowledgeHelper.insert(DefaultKnowledgeHelper.java:67)
at org.drools.base.DefaultKnowledgeHelper.insert(DefaultKnowledgeHelper.java:61)
BladeServerSlot is a subclass of Slot and is contained in a Chassis.
Here is the debug from insertion
[ObjectInserted: handle=[fid:1:1:ClassName:[BladeChassis],
GUID:[CF0A4E63-94B2-8505-9CD2-56B4CBB52A01], Revision#:[10], Creation Date:[2008-09-24
11:2
5:59.687], ModDate:[2008-09-24 14:44:55.859], ModBy:[david.sinclair], CommonName:[blade
chassis 1]]; object=ClassName:[BladeChassis], GUID:[CF0A4E63-9
4B2-8505-9CD2-56B4CBB52A01], Revision#:[10], Creation Date:[2008-09-24 11:25:59.687],
ModDate:[2008-09-24 14:44:55.859], ModBy:[david.sinclair], Commo
nName:[blade chassis 1]]
and before activation fired
[BeforeActivationFired(0): rule=ChassisSlotCollectionFieldWalker;
tuple=[fid:3:3:ClassName:[BladeServerSlot], GUID:[AE26671E-BF95-B58A-A6AB-DA13BEED6B
D5], Revision#:[0], Creation Date:[2008-09-24 16:10:11.062], ModDate:[2008-09-24
16:10:11.062], ModBy:[david.sinclair], CommonName:[blade server slot
2]]
[fid:1:1:ClassName:[BladeChassis], GUID:[CF0A4E63-94B2-8505-9CD2-56B4CBB52A01],
Revision#:[10], Creation Date:[2008-09-24 11:25:59.687], ModDate:[2008
-09-24 14:44:55.859], ModBy:[david.sinclair], CommonName:[blade chassis 1]]
]
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira