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


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.

Reply via email to