You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@servicemix.apache.org by "Ron Gavlin (JIRA)" <ji...@apache.org> on 2008/10/18 08:26:52 UTC
[jira] Issue Comment Edited: (SM-1637) smx-cxf-bc provider throws
NPE at JbiInWsdl1Interceptor.handleJBIFault(JbiInWsdl1Interceptor.java:237)
[ https://issues.apache.org/activemq/browse/SM-1637?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=46559#action_46559 ]
rgavlin edited comment on SM-1637 at 10/17/08 11:26 PM:
-----------------------------------------------------------
Based on the relevant code snippet below from JbiInWsdl1Interceptor, it appears that there is neither a detail in the fault nor a faultstring. Therefore, the nodeList in line 237 is null which causes the NPE. I am not sure if this is truly a smx-cxf-bc provider problem or if it is a problem with the smx-cxf-bc consumer/smx-cxf-se not generating the right error.
Thanks in advance for taking a look at this for me.
Ron
if (message.getVersion() instanceof Soap11) {
230 NodeList nodeList = soapFault.getElementsByTagName("detail");
231 if (nodeList == null) {
232 //there is no detail in the fault, which means the fault is
233 //thrown during soap header process according to soap spec,
234 //try get the mandatory elemenet faultstring
235 nodeList = soapFault.getElementsByTagName("faultstring");
236 }
237 jbiFaultDetail = doc.importNode(nodeList.item(0).getFirstChild(), true);
was (Author: rgavlin):
Based on the relevant code snippet below from JbiInWsdl1Interceptor, it appears that there is neither a detail in the fault nor a faultstring. There nodeList in line 237 is null which causes the NPE. I am not sure if this is truly a smx-cxf-bc provider problem or if it is a problem with the smx-cxf-bc consumer/smx-cxf-se not generating the right error.
Thanks in advance for taking a look at this for me.
Ron
if (message.getVersion() instanceof Soap11) {
230 NodeList nodeList = soapFault.getElementsByTagName("detail");
231 if (nodeList == null) {
232 //there is no detail in the fault, which means the fault is
233 //thrown during soap header process according to soap spec,
234 //try get the mandatory elemenet faultstring
235 nodeList = soapFault.getElementsByTagName("faultstring");
236 }
237 jbiFaultDetail = doc.importNode(nodeList.item(0).getFirstChild(), true);
> smx-cxf-bc provider throws NPE at JbiInWsdl1Interceptor.handleJBIFault(JbiInWsdl1Interceptor.java:237)
> -------------------------------------------------------------------------------------------------------
>
> Key: SM-1637
> URL: https://issues.apache.org/activemq/browse/SM-1637
> Project: ServiceMix
> Issue Type: Bug
> Components: servicemix-cxf-bc
> Affects Versions: servicemix-cxf-bc-2008.01
> Reporter: Ron Gavlin
> Priority: Critical
>
> I have a smx-cxf-bc provider invoking a smx-cxf-bc consumer/smx-cxf-se via jms transport. When the smx-cxf-se impl throws a RuntimeException, the smx-cxf-bc provider in turn throws a NullPointerException. The servicemix console (from 3.3.1.8-fuse) is listed below.
> INFO: Application has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault
> at org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:119)
> at org.apache.cxf.jaxws.JAXWSMethodInvoker.createFault(JAXWSMethodInvoker.java:86)
> at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:107)
> at org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:110)
> at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:68)
> at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:56)
> at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
> at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:92)
> at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
> at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:77)
> at org.apache.cxf.transport.jbi.JBIDispatcherUtil.dispatch(JBIDispatcherUtil.java:156)
> at org.apache.servicemix.cxfse.CxfSeEndpoint.process(CxfSeEndpoint.java:293)
> at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:540)
> at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:492)
> at org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
> at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:620)
> at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
> at org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)
> at org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
> 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)
> Caused by: java.lang.RuntimeException
> at org.apache.servicemix.samples.wsdl_first.PersonImpl.getPerson(PersonImpl.java:38)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:136)
> at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:82)
> ... 19 more
> Oct 18, 2008 1:09:23 AM org.apache.cxf.phase.PhaseInterceptorChain doIntercept
> INFO: Interceptor has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault
> at org.apache.servicemix.cxfbc.CxfBcConsumer$JbiPostInvokerInterceptor.handleMessage(CxfBcConsumer.java:623)
> at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
> at org.apache.cxf.phase.PhaseInterceptorChain.resume(PhaseInterceptorChain.java:198)
> at org.apache.servicemix.cxfbc.CxfBcConsumer.process(CxfBcConsumer.java:258)
> at org.apache.servicemix.cxfbc.CxfBcConsumer$JbiInvokerInterceptor.handleMessage(CxfBcConsumer.java:599)
> at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
> at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:77)
> at org.apache.cxf.transport.jms.JMSDestination.onMessage(JMSDestination.java:243)
> at org.apache.cxf.transport.jms.JMSListenerThread$JMSExecutable.run(JMSListenerThread.java:142)
> 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)
> Caused by: org.apache.cxf.interceptor.Fault
> at org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:119)
> at org.apache.cxf.jaxws.JAXWSMethodInvoker.createFault(JAXWSMethodInvoker.java:86)
> at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:107)
> at org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:110)
> at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:68)
> at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:56)
> at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
> at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:92)
> at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
> at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:77)
> at org.apache.cxf.transport.jbi.JBIDispatcherUtil.dispatch(JBIDispatcherUtil.java:156)
> at org.apache.servicemix.cxfse.CxfSeEndpoint.process(CxfSeEndpoint.java:293)
> at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:540)
> at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:492)
> at org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
> at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:620)
> at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
> at org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)
> at org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
> ... 3 more
> Caused by: java.lang.RuntimeException
> at org.apache.servicemix.samples.wsdl_first.PersonImpl.getPerson(PersonImpl.java:38)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:136)
> at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:82)
> ... 19 more
> Oct 18, 2008 1:09:23 AM org.apache.cxf.phase.PhaseInterceptorChain doIntercept
> INFO: Interceptor has thrown exception, unwinding now
> java.lang.NullPointerException
> at org.apache.servicemix.cxfbc.interceptors.JbiInWsdl1Interceptor.handleJBIFault(JbiInWsdl1Interceptor.java:237)
> at org.apache.servicemix.cxfbc.interceptors.JbiInWsdl1Interceptor.handleMessage(JbiInWsdl1Interceptor.java:151)
> at org.apache.servicemix.cxfbc.interceptors.JbiInWsdl1Interceptor.handleMessage(JbiInWsdl1Interceptor.java:61)
> at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
> at org.apache.servicemix.cxfbc.CxfBcProviderMessageObserver.onMessage(CxfBcProviderMessageObserver.java:140)
> at org.apache.cxf.transport.jms.JMSConduit.sendExchange(JMSConduit.java:172)
> at org.apache.cxf.transport.jms.JMSOutputStream.doClose(JMSOutputStream.java:49)
> at org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:167)
> at org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:213)
> at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:540)
> at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:492)
> at org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
> at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:620)
> at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
> at org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)
> at org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
> 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 message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.