You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ode.apache.org by "Karthick Sankarachary (JIRA)" <ji...@apache.org> on 2009/02/28 00:07:13 UTC
[jira] Issue Comment Edited: (ODE-532) Using both xquery and
activityRecovery causes compile error
[ https://issues.apache.org/jira/browse/ODE-532?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12677589#action_12677589 ]
karthick edited comment on ODE-532 at 2/27/09 3:06 PM:
--------------------------------------------------------------------
I would rather not make that field transient, as it will pretty much render it useless in the event of a failure in a process instance. Thankfully, upon further analysis, it was revealed that the root cause lies elsewhere.
The problem stems from the fact that the XQuery expression node contains a user data that points to a (non-serializable) function resolver object. This gets pulled into the debug information object corresponding to the activity recovery construct. I removed that user data (revision 748724) on the expression after it gets compiled - and sure enough, the process serializes without incident.
was (Author: karthick):
I would rather not make that field transient, as it will pretty much render it useless in the event of a failure in a process instance. Thankfully, upon further analysis, it was revealed that the root cause lies elsewhere.
The problem stems from the fact that the XQuery expression node contains a user data that points to a (non-serializable) function resolver object. This gets pulled into the debug information object corresponding to the activity recovery construct. I get rid of the user data (revision 748724) on the expression after it gets compiled - and sure enough, the process serializes without incident.
> Using both xquery and activityRecovery causes compile error
> -----------------------------------------------------------
>
> Key: ODE-532
> URL: https://issues.apache.org/jira/browse/ODE-532
> Project: ODE
> Issue Type: Bug
> Components: BPEL Compilation/Parsing
> Affects Versions: 1.3
> Reporter: Rafal Rusin
> Assignee: Karthick Sankarachary
> Fix For: 1.3
>
> Attachments: xquery-activityrecovery-patch.diff, xquery-activityrecovery-test.diff
>
>
> I added an activityRecovery tag to xquery test and I got quite interesting exception:
> [junit] ERROR - DeploymentUnitDir.compile(174) | Compile error in /mnt/i/home/joker/dev/ode1x-xquery-activityrecovery/bpel-test/target/test-classes/bpel/2.0/TestXQueryExpression/HelloXQueryWorld.bpel
> [junit] java.io.NotSerializableException: org.apache.ode.bpel.elang.xpath20.compiler.JaxpFunctionResolver
> [junit] at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081)
> [junit] at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)
> [junit] at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347)
> [junit] at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
> [junit] at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
> [junit] at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302)
> [junit] at java.util.Hashtable.writeObject(Hashtable.java:813)
> [junit] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> [junit] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> [junit] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> [junit] at java.lang.reflect.Method.invoke(Method.java:585)
> [junit] at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:917)
> [junit] at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1339)
> [junit] at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
> [junit] at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
> [junit] at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302)
> [junit] at java.util.Hashtable.writeObject(Hashtable.java:813)
> [junit] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> [junit] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> [junit] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> [junit] at java.lang.reflect.Method.invoke(Method.java:585)
> [junit] at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:917)
> [junit] at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1339)
> [junit] at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
> [junit] at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
> [junit] at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)
> [junit] at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347)
> [junit] at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
> [junit] at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
> [junit] at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)
> [junit] at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:391)
> [junit] at org.apache.xerces.dom.NodeImpl.writeObject(Unknown Source)
> [junit] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> [junit] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> [junit] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> [junit] at java.lang.reflect.Method.invoke(Method.java:585)
> [junit] at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:917)
> [junit] at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1339)
> [junit] at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
> [junit] at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
> [junit] at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)
> [junit] at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:391)
> [junit] at org.apache.xerces.dom.NodeImpl.writeObject(Unknown Source)
> [junit] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> [junit] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> [junit] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> [junit] at java.lang.reflect.Method.invoke(Method.java:585)
> [junit] at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:917)
> [junit] at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1339)
> [junit] at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
> [junit] at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
> [junit] at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)
> [junit] at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:391)
> [junit] at org.apache.xerces.dom.NodeImpl.writeObject(Unknown Source)
> [junit] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> [junit] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> [junit] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> [junit] at java.lang.reflect.Method.invoke(Method.java:585)
> [junit] at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:917)
> [junit] at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1339)
> [junit] at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
> [junit] at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
> [junit] at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302)
> [junit] at java.util.HashMap.writeObject(HashMap.java:1039)
> [junit] at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
> [junit] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> [junit] at java.lang.reflect.Method.invoke(Method.java:585)
> [junit] at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:917)
> [junit] at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1339)
> [junit] at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
> [junit] at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
> [junit] at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)
> [junit] at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347)
> [junit] at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
> [junit] at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
> [junit] at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)
> [junit] at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347)
> [junit] at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
> [junit] at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
> [junit] at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302)
> [junit] at java.util.HashSet.writeObject(HashSet.java:254)
> [junit] at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
> [junit] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> [junit] at java.lang.reflect.Method.invoke(Method.java:585)
> [junit] at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:917)
> [junit] at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1339)
> [junit] at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
> [junit] at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
> [junit] at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)
> [junit] at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347)
> [junit] at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
> [junit] at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
> [junit] at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302)
> [junit] at java.util.ArrayList.writeObject(ArrayList.java:569)
> [junit] at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
> [junit] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> [junit] at java.lang.reflect.Method.invoke(Method.java:585)
> [junit] at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:917)
> [junit] at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1339)
> [junit] at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
> [junit] at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
> [junit] at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)
> [junit] at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347)
> [junit] at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
> [junit] at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
> [junit] at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302)
> [junit] at org.apache.ode.bpel.o.Serializer.writeOProcess(Serializer.java:124)
> [junit] at org.apache.ode.bpel.compiler.BpelC.compile(BpelC.java:283)
> [junit] at org.apache.ode.bpel.compiler.BpelC.compile(BpelC.java:330)
> [junit] at org.apache.ode.store.DeploymentUnitDir.compile(DeploymentUnitDir.java:172)
> [junit] at org.apache.ode.store.DeploymentUnitDir.compile(DeploymentUnitDir.java:136)
> [junit] at org.apache.ode.store.ProcessStoreImpl.deploy(ProcessStoreImpl.java:175)
> [junit] at org.apache.ode.test.BPELTestAbstract.doDeployment(BPELTestAbstract.java:306)
> [junit] at org.apache.ode.test.BPELTestAbstract.doDeployments(BPELTestAbstract.java:294)
> [junit] at org.apache.ode.test.BPELTestAbstract.go(BPELTestAbstract.java:266)
> [junit] at org.apache.ode.test.BPELTestAbstract.go(BPELTestAbstract.java:206)
> [junit] at org.apache.ode.test.BPELTestAbstract.go(BPELTestAbstract.java:191)
> [junit] at org.apache.ode.test.DataHandling20Test.testXQueryExpression(DataHandling20Test.java:80)
> [junit] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> [junit] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> [junit] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> [junit] at java.lang.reflect.Method.invoke(Method.java:585)
> [junit] at org.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMethodRunner.java:99)
> [junit] at org.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethodRunner.java:81)
> [junit] at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
> [junit] at org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75)
> [junit] at org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:45)
> [junit] at org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:66)
> [junit] at org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:35)
> [junit] at org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42)
> [junit] at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
> [junit] at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52)
> [junit] at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:32)
> [junit] at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:421)
> [junit] at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:912)
> [junit] at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:766)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.