NPE when external SOAP service returns fault not listed in its wsdl
-------------------------------------------------------------------

                 Key: ODE-256
                 URL: https://issues.apache.org/jira/browse/ODE-256
             Project: ODE
          Issue Type: Bug
          Components: BPEL Runtime
    Affects Versions: 1.1.1, 1.2
         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


Often, if axis2 based java service don't list any fault(s) in its wsdl, and 
throws RuntimeException, axis2 tranlates it to soapenv:Server standard fault. 
ODE BPEL runtime is not able to catch such failures (neither version 1.1.1 nor 
-trunk), there is just NPE happens, transaction is abandoned and client 
receives timeout exception. Here is a stack trace for -trunk version:
java.lang.NullPointerException
        at org.apache.ode.axis2.ExternalService.reply(ExternalService.java:299)
        at org.apache.ode.axis2.ExternalService.invoke(ExternalService.java:152)
        at 
org.apache.ode.axis2.MessageExchangeContextImpl.invokePartnerUnreliable(MessageExchangeContextImpl.java:67)
        at 
org.apache.ode.bpel.engine.PartnerLinkPartnerRoleImpl$UnreliableInvoker.run(PartnerLinkPartnerRoleImpl.java:339)
        at 
org.apache.ode.bpel.engine.BpelProcess$ProcessRunnable.run(BpelProcess.java:1123)
        at 
org.apache.ode.bpel.engine.BpelServerImpl$ServerRunnable.run(BpelServerImpl.java:793)
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:417)
        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 happens, because odeMex.getOperation().getFault(nonNullFT.getLocalPart()) 
returns null in this case.

-- 
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