ClassCastException while Drools is getting shadow object
--------------------------------------------------------
Key: JBESB-1897
URL:
https://jira.jboss.org/jira/browse/JBESB-1897
Project: JBoss ESB
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Process flow
Affects Versions: 4.3
Environment: Drools 4.0.2 and 4.0.7 (tried with both), mvel 1.2.24 and 1.3.1
(tried with both), QS bpm_orchestration4
Reporter: Martin Vecera
Reproducible 100%
= Basic plot =
bpm_orchestration4 has the following message flow (it is little bit simplified but covers
important parts): starter service -> jBPM process that calls -> intake service with
Drools action -> back to jBPM process -> task assigned to an user -> jBPM process
calls -> discount service with another Drools action (*)
(*) Shows the part where problem arises (inside Drools action):
2008-08-04 08:42:16,210 WARN
[org.jboss.soa.esb.listeners.message.ActionProcessingPipeline] Unexpected exception caught
while processing the action pipeline: header: [ To: InVMEpr [ PortReferenc
org.drools.RuntimeDroolsException: Error creating shadow fact for object: 2, Wed Nov 15
19:45:28 GMT+01:00 2006, 0, 59.97, 64.92, 4.95,
at org.drools.reteoo.Rete$ClassObjectTypeConf.getShadow(Rete.java:636)
at org.drools.reteoo.Rete.assertObject(Rete.java:164)
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
org.jboss.internal.soa.esb.services.routing.cbr.JBossRulesRouter.route(JBossRulesRouter.java:169)
at
org.jboss.soa.esb.actions.BusinessRulesProcessor.process(BusinessRulesProcessor.java:58)
at
org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.process(ActionProcessingPipeline.java:316)
at
org.jboss.soa.esb.listeners.message.MessageAwareListener$TransactionalRunner.run(MessageAwareListener.java:530)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.ClassCastException: org.jboss.soa.esb.store.OrderHeader
at org.jboss.soa.esb.store.OrderHeaderShadowProxy.setShadowedObject(Unknown
Source)
at org.drools.reteoo.Rete$ClassObjectTypeConf.getShadow(Rete.java:634)
... 13 more
The same exception is thrown for both Drools/mvel versions.
You have to execute the QS at least TWICE to get the exception (for the first time it
works well)!
Steps to reproduce:
1. get ESB 4.3.0GA binaries, start it
2. execute samples/quickstarts/bpm_orchestration4 (ant deploy, deployProcess,
startProcess)
3. click "Save and Close" on every task that appears in jBPM console
4. the first time the QS finishes without problems so run ant startProcess once more
5. click "Save and Close" on the first task in jBPM console, you won't get
the second task assigned since the exception is thrown
This QS (from version 4.3.0.GA) works fine with ESB server from trunk (08/04/2008).
When I skipped the return from the intake service to jBPM process and put static router
from intake service directly to discount service (skipping appropriate process nodes as
well), the problem didn't show up.
--
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