ode-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexey Ousov (JIRA)" <j...@apache.org>
Subject [jira] Updated: (ODE-256) NPE when external SOAP service returns fault not listed in its wsdl
Date Mon, 07 Apr 2008 12:10:26 GMT

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

Alexey Ousov updated ODE-256:

    Attachment: ODE-256.patch

I tried to fix it. See what I got. It works for me now, although if any exception is thrown
while receiving SOAP response, client will still get timeout, because org.apache.ode.bpel.engine.PartnerRoleMessageExchangeImpl.replyWithFailure
doesn't propagade BPEL process to run. But I'm not worry about this one, because I'm not getting
exceptions there :)

> 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, Oracle 10g XE, Apache Tomcat 5.5.25,
>            Reporter: Alexey Ousov
>             Fix For: 1.2
>         Attachments: axis2_fault.txt, axis2_fault_full.txt, bpel_fault.txt, ODE-256.patch
> 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.

View raw message