[ 
https://issues.apache.org/jira/browse/ODE-765?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12833824#action_12833824
 ] 

Rafal Rusin commented on ODE-765:
---------------------------------

I think that ODE execution states shouldn't embed complex objects, like 
java.util.Calendar. It may be good idea to create serializable wrapper util 
class, which will hold milliseconds in Long intead of Calendar. This way ODE 
will be more flexible for JVM migrations, since JDK classes sometimes are not 
be binary compatible. 

> Error during migration of IBM JVM - StreamCorruptedException
> ------------------------------------------------------------
>
>                 Key: ODE-765
>                 URL: https://issues.apache.org/jira/browse/ODE-765
>             Project: ODE
>          Issue Type: Bug
>          Components: BPEL Runtime
>    Affects Versions: 1.3.3
>         Environment: SMX 3.3, IBM JDK 1.5
>            Reporter: Rafal Rusin
>            Assignee: Rafal Rusin
>
> After upgrading JVM from 1.5.x to 1.5.y, this has been thrown (during reading 
> of execution state): 
> 2010-02-08 22:24:11 | ERROR | ODEServer-22-1       | BpelEngineImpl           
>       | rg.apache.ode.bpel.engine.BpelEngineImpl  442 | Scheduled job failed; 
> jobDetail={channel=370, type=TIMER, iid=33106854978
> , inmem=false}
> java.lang.RuntimeException: java.io.StreamCorruptedException
>         at 
> org.apache.ode.bpel.engine.BpelRuntimeContextImpl.<init>(BpelRuntimeContextImpl.java:161)
>         at 
> org.apache.ode.bpel.engine.BpelProcess.createRuntimeContext(BpelProcess.java:788)
>         at 
> org.apache.ode.bpel.engine.BpelProcess.handleWorkEvent(BpelProcess.java:442)
>         at 
> org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:430)
>         at 
> org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl.java:377)
>         at 
> org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:476)
>         at 
> org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:467)
>         at 
> org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:268)
>         at 
> org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:466)
>         at 
> org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:463)
>         at 
> edu.emory.mathcs.backport.java.util.concurrent.FutureTask.run(FutureTask.java:176)
>         at 
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
>         at 
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
>         at java.lang.Thread.run(Thread.java:811)
> Caused by: 
> java.io.StreamCorruptedException
>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1368)
>         at 
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
>         at 
> java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:509)
>         at java.util.Calendar.readObject(Calendar.java:2477)
>         at sun.reflect.GeneratedMethodAccessor229.invoke(Unknown Source)
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:618)
>         at 
> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1036)
>         at 
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1848)
>         at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1755)
>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1341)
>         at 
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
>         at 
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
>         at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1755)
>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1341)
>         at 
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
>         at 
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
>         at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1755)
>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1341)
>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:378)
>         at 
> org.apache.ode.jacob.vpu.ExecutionQueueImpl$ObjectFrame.readExternal(ExecutionQueueImpl.java:602)
>         at 
> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1791)
>         at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1341)
>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:378)
>         at java.util.HashSet.readObject(HashSet.java:303)
>         at sun.reflect.GeneratedMethodAccessor210.invoke(Unknown Source)
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:618)
>         at 
> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1036)
>         at 
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1848)
>         at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1755)
>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1341)
>         at 
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
>         at 
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
>         at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1755)
>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1341)
>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:378)
>         at 
> org.apache.ode.jacob.vpu.ExecutionQueueImpl$CommFrame.readExternal(ExecutionQueueImpl.java:576)
>         at 
> org.apache.ode.jacob.vpu.ExecutionQueueImpl$ObjectFrame.readExternal(ExecutionQueueImpl.java:601)
>         at 
> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1791)
>         at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1341)
>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:378)
>         at 
> org.apache.ode.jacob.vpu.ExecutionQueueImpl.read(ExecutionQueueImpl.java:276)
>         at 
> org.apache.ode.bpel.engine.BpelRuntimeContextImpl.<init>(BpelRuntimeContextImpl.java:159)
>         ... 13 more

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to