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 of over 48,000 articles and solutions.

Current Customers and Partners

Log in for full access

Log In
Close

Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.