ClassCast Problem
candersen Aug 29, 2007 6:16 AMHello,
I am encountering a strange problem. I wrote a very simple Processdefinition:
<?xml version="1.0" encoding="UTF-8"?> <process-definition xmlns="" name="objectTest"> <start-state name="start"> <event type="node-leave"> <action name="action1" class="com.test.SetUpActionHandler"/> </event> <transition name="" to="node1"></transition> </start-state> <end-state name="end"> </end-state> <node name="node1"> <action class="com.test.ObjectTestActionHandler" /> <transition name="" to="end"></transition> </node> </process-definition>
In the SepUpActionHandler class I declare a simple TestObject and put it into the ContextInstance:
package com.test;
import org.jbpm.graph.def.ActionHandler;
import org.jbpm.graph.exe.ExecutionContext;
public class SetUpActionHandler implements ActionHandler {
private static final long serialVersionUID = 1L;
public void execute(ExecutionContext executionContext) throws Exception
{
TestObject to = new TestObject();
to.setText("TestString");
executionContext.getContextInstance().setVariable("Test", to);
}
}
The TestObject itself is a very minimal serializable object:
package com.test;
import java.io.Serializable;
public class TestObject implements Serializable {
private static final long serialVersionUID = 1L;
private String _text = "leer";
public TestObject()
{
}
public String getText()
{
return _text;
}
public void setText(String s)
{
_text = s;
}
}
And finally, in the ObjectTestActionHandler, I retrieve the TestObject from the ContextInstance:
package com.test;
import org.jbpm.graph.def.ActionHandler;
import org.jbpm.graph.exe.ExecutionContext;
public class ObjectTestActionHandler implements ActionHandler {
private static final long serialVersionUID = 1L;
public void execute(ExecutionContext executionContext) throws Exception
{
Object o = executionContext.getContextInstance().getVariable("Test");
TestObject to = (TestObject) o;
executionContext.getToken().signal();
}
}
When I execute this process in Eclipse, everything runs fine, there are no errors. But when I deploy it to a JBoss AS (4.0.4) and start it using the jbpm-web-console, I get a ClassCastException with the message: "com.test.TestObject cannot be cast to com.test.TestObject"
The Exception is thrown by the ObjectTestActionHandler in the line where the casting is done:
TestObject to = (TestObject) o;
Does anybody know why this happens?
Regards,
Claus Andersen