[ https://issues.apache.org/jira/browse/ODE-260?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Tammo van Lessen resolved ODE-260. ---------------------------------- Resolution: Fixed seems to be fixed. > 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, ODE-260v01.patch, ODE-260v02.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. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira