SwitchYard BPEL service receives NullPointerException when handling SOAP faults from an external WS endpoint in FSW

Solution Unverified - Updated -

Issue

  • I get NullPointerException when trying to handle SOAP faults from an external WS endpoint within a SwitchYard BPEL service.
  • You can reproduce the issue using the "bpel-service/loan_approval" quickstart. As soon as you change the "riskAssessor" reference from an internal component service (as is in the original quickstart) to a promoted reference to an external WS endpoint, the fault handler defined in the loan_approval.bpel starts to fail with the following error stacktrace:
12:06:08,157 ERROR [org.apache.ode.jacob.vpu.JacobVPU] (ODEServer-1) Method "run" in class "org.apache.ode.bpel.runtime.INVOKE" threw an unexpected exception.: org.apache.ode.bpel.iapi.ContextException: Failed to invoke external service
    at org.riftsaw.engine.internal.MessageExchangeContextImpl.invokePartnerUnreliable(MessageExchangeContextImpl.java:151) [engine-3.0.0.Final-redhat-8.jar:3.0.0.Final-redhat-8]
    at org.riftsaw.engine.internal.MessageExchangeContextImpl.invokePartner(MessageExchangeContextImpl.java:195) [engine-3.0.0.Final-redhat-8.jar:3.0.0.Final-redhat-8]
    at org.apache.ode.bpel.engine.BpelRuntimeContextImpl.invoke(BpelRuntimeContextImpl.java:951) [riftsaw-bpel-runtime-3.0.0.Final-redhat-8.jar:3.0.0.Final-redhat-8]
    (snip)
Caused by: org.switchyard.HandlerException: java.lang.NullPointerException
    at org.switchyard.bus.camel.processors.ErrorHandlingProcessor.detectHandlerException(ErrorHandlingProcessor.java:62) [switchyard-bus-camel-1.1.1-p5-redhat-1.jar:1.1.1-p5-redhat-1]
    at org.switchyard.bus.camel.processors.ErrorHandlingProcessor.process(ErrorHandlingProcessor.java:48) [switchyard-bus-camel-1.1.1-p5-redhat-1.jar:1.1.1-p5-redhat-1]
    at org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61) [camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024]
    (snip)
Caused by: java.lang.NullPointerException
    at com.sun.xml.messaging.saaj.soap.impl.ElementImpl.addTextNode(ElementImpl.java:455)
    at com.sun.xml.messaging.saaj.soap.ver1_1.Fault1_1Impl.setFaultString(Fault1_1Impl.java:170)
    at com.sun.xml.messaging.saaj.soap.impl.BodyImpl.addFault(BodyImpl.java:133)
    at org.switchyard.component.soap.util.SOAPUtil.generateFault(SOAPUtil.java:468) [switchyard-component-soap-1.1.1-p5-redhat-1.jar:1.1.1-p5-redhat-1]
    at org.switchyard.component.soap.util.SOAPUtil.generateSOAP11Fault(SOAPUtil.java:441) [switchyard-component-soap-1.1.1-p5-redhat-1.jar:1.1.1-p5-redhat-1]
    at org.switchyard.component.soap.util.SOAPUtil.generateFault(SOAPUtil.java:428) [switchyard-component-soap-1.1.1-p5-redhat-1.jar:1.1.1-p5-redhat-1]
    at org.switchyard.component.soap.OutboundHandler.invokeService(OutboundHandler.java:332) [switchyard-component-soap-1.1.1-p5-redhat-1.jar:1.1.1-p5-redhat-1]
    at org.switchyard.component.soap.OutboundHandler.handleMessage(OutboundHandler.java:273) [switchyard-component-soap-1.1.1-p5-redhat-1.jar:1.1.1-p5-redhat-1]
    at org.switchyard.bus.camel.processors.ProviderProcessor.process(ProviderProcessor.java:29) [switchyard-bus-camel-1.1.1-p5-redhat-1.jar:1.1.1-p5-redhat-1]
    at org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61) [camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024]
    (snip)
  • Chould you tell me what is wrong in this configuration? Is it a bug in SwitchYard BPEL component?

Environment

  • Red Hat JBoss Fuse Service Works (FSW)
    • 6.0.0

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content