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:05:12 UTC

[jira] Resolved: (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: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.