SwitchYard BPEL service receives NullPointerException when handling SOAP faults from an external WS endpoint in FSW
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 theloan_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.