You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ode.apache.org by "Alexey Ousov (JIRA)" <ji...@apache.org> on 2008/04/02 13:44:24 UTC

[jira] Updated: (ODE-260) Executing SOAP services, which doesn't return value

     [ https://issues.apache.org/jira/browse/ODE-260?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alexey Ousov updated ODE-260:
-----------------------------

    Attachment: ODE-260.patch

Here is how I fixed it (regarding to 1.1 branch). It is rather tricky, but I tried to touch as little parts of ODE project as possible.

> Executing SOAP services, which doesn't return value
> ---------------------------------------------------
>
>                 Key: ODE-260
>                 URL: https://issues.apache.org/jira/browse/ODE-260
>             Project: ODE
>          Issue Type: Bug
>          Components: BPEL Runtime
>    Affects Versions: 1.1, 1.1.1
>         Environment: Windows XP Pro, JDK 1.5.0.07, Oracle 10g XE, Apache Tomcat 5.5.25, OpenJPA
>            Reporter: Alexey Ousov
>             Fix For: 1.2
>
>         Attachments: ODE-260.patch
>
>
> Very strange things happen, when executing exetrnal services in two-way style, and this service doesn't return values. Something like this:
> <?xml version='1.0' encoding='utf-8'?>
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing">
>   <soapenv:Header>
>     <wsa:Action>http://www.comped.it/te/dbService/dbService/commitTransactionResponse</wsa:Action>
>     <wsa:RelatesTo>uuid:hqejbhcnphr35voswr4cg3</wsa:RelatesTo>
>   </soapenv:Header>
>   <soapenv:Body />
> </soapenv:Envelope>
> First of all I got the following exception (happens only if INFO logging is enabled):
> 16:30:19,859 ERROR ExternalService$4.call(333) : Unable to process response: Cannot stringify null Node!
> java.lang.IllegalArgumentException: Cannot stringify null Node!
> 	at org.apache.ode.utils.DOMUtils.domToString(DOMUtils.java:419)
> 	at org.apache.ode.axis2.ExternalService$4.call(ExternalService.java:328)
> 	at org.apache.ode.axis2.ExternalService$4.call(ExternalService.java:295)
> 	at org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:179)
> 	at org.apache.ode.scheduler.simple.SimpleScheduler$1.call(SimpleScheduler.java:160)
> 	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:123)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
> 	at java.lang.Thread.run(Thread.java:595)
> I fixed it, but then I've got the following (because element was empty string):
> 18:03:17,843 DEBUG LoggingErrorHandler.fatalError(89) : :-1:-1:FATAL:Premature end of file.
> 18:03:17,859 ERROR INVOKE$1.onResponse(116) : Exception while processing invoke response
> java.lang.RuntimeException: org.xml.sax.SAXParseException: Premature end of file.
> 	at org.apache.ode.dao.jpa.MessageDAOImpl.getData(MessageDAOImpl.java:76)
> 	at org.apache.ode.bpel.engine.BpelRuntimeContextImpl.mergeHeaders(BpelRuntimeContextImpl.java:1153)
> 	at org.apache.ode.bpel.engine.BpelRuntimeContextImpl.getPartnerResponse(BpelRuntimeContextImpl.java:1111)
> 	at org.apache.ode.bpel.runtime.INVOKE$1.onResponse(INVOKE.java:114)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:585)
> 	at org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:451)
> 	at org.apache.ode.jacob.vpu.JacobVPU.execute(JacobVPU.java:139)
> 	at org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute(BpelRuntimeContextImpl.java:832)
> 	at org.apache.ode.bpel.engine.BpelProcess.handleWorkEvent(BpelProcess.java:392)
> 	at org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:328)
> 	at org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl.java:373)
> 	at org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:341)
> 	at org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:340)
> 	at org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:179)
> 	at org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:339)
> 	at org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:336)
> 	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:123)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
> 	at java.lang.Thread.run(Thread.java:595)
> Caused by: org.xml.sax.SAXParseException: Premature end of file.
> 	at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
> 	at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
> 	at org.apache.ode.utils.DOMUtils.parse(DOMUtils.java:622)
> 	at org.apache.ode.utils.DOMUtils.stringToDOM(DOMUtils.java:548)
> 	at org.apache.ode.dao.jpa.MessageDAOImpl.getData(MessageDAOImpl.java:74)
> 	... 23 more
> And finally I got the following exception:
> 18:35:48,515 ERROR INVOKE$1.onResponse(116) : Exception while processing invoke response
> java.lang.NullPointerException
> 	at org.apache.ode.bpel.engine.BpelRuntimeContextImpl.mergeHeaders(BpelRuntimeContextImpl.java:1160)
> 	at org.apache.ode.bpel.engine.BpelRuntimeContextImpl.getPartnerResponse(BpelRuntimeContextImpl.java:1111)
> 	at org.apache.ode.bpel.runtime.INVOKE$1.onResponse(INVOKE.java:114)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:585)
> 	at org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:451)
> 	at org.apache.ode.jacob.vpu.JacobVPU.execute(JacobVPU.java:139)
> 	at org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute(BpelRuntimeContextImpl.java:832)
> 	at org.apache.ode.bpel.engine.BpelProcess.handleWorkEvent(BpelProcess.java:392)
> 	at org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:328)
> 	at org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl.java:373)
> 	at org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:341)
> 	at org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:340)
> 	at org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:179)
> 	at org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:339)
> 	at org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:336)
> 	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:123)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
> 	at java.lang.Thread.run(Thread.java:595)

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