[ https://issues.apache.org/jira/browse/ODE-532?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Karthick Sankarachary resolved ODE-532. --------------------------------------- Resolution: Fixed 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.