Uploaded image for project: 'ServiceMix Components'
  1. ServiceMix Components
  2. SMXCOMP-651

smx-camel errorHandler problem when in-only mep received, robust-in-only mep sent, fault returned, and handleFault="true"

    XMLWordPrintableJSON

Details

    • Patch Available

    Description

      This patch adds a robust-in-only test, JbiRobustInOnlyWithFaultHandledTrueSpringDSLTest, that exposes a bug in the 2009.01 version of the component. It appears this bug is fixed with the camel-2.0-based re-write of the component. Will attach the test patch shortly.

      The stack trace generated when running test, testInOnlyWithFaultHandledByExceptionClause, using version servicemix-camel-2009.01is listed below:

      INFO - ComponentMBeanImpl - Initializing component: ID:10.10.10.10-124573db925-0:4
      INFO - ComponentMBeanImpl - Starting component: ID:10.10.10.10-124573db925-0:4
      ERROR - CamelJbiComponent - Error processing exchange RobustInOnly[
      id: ID:10.10.10.10-124573db925-3:0
      status: Active
      role: consumer
      service:

      {urn:test}

      faulty-service
      endpoint: endpoint
      in: null
      fault: <?xml version="1.0" encoding="UTF-8"?><fault/>
      ]
      java.lang.RuntimeException: javax.jbi.messaging.MessagingException: Fault not supported
      at org.apache.servicemix.camel.JbiExchange.createMessage(JbiExchange.java:179)
      at org.apache.servicemix.camel.JbiExchange.createFaultMessage(JbiExchange.java:156)
      at org.apache.servicemix.camel.JbiExchange.createFaultMessage(JbiExchange.java:1)
      at org.apache.camel.impl.DefaultExchange.getFault(DefaultExchange.java:259)
      at org.apache.servicemix.camel.JbiExchange.getFault(JbiExchange.java:81)
      at org.apache.servicemix.camel.JbiExchange.getFault(JbiExchange.java:1)
      at org.apache.camel.impl.DefaultExchange.getFault(DefaultExchange.java:254)
      at org.apache.servicemix.camel.JbiExchange.getFault(JbiExchange.java:76)
      at org.apache.servicemix.camel.JbiExchange.getFault(JbiExchange.java:1)
      at org.apache.servicemix.camel.CamelConsumerEndpoint.process(CamelConsumerEndpoint.java:64)
      at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
      at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:598)
      at org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
      at org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
      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.st.STFlow.doSend(STFlow.java:49)
      at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.send(AbstractFlow.java:123)
      at org.apache.servicemix.jbi.nmr.DefaultBroker.sendExchangePacket(DefaultBroker.java:283)
      at org.apache.servicemix.jbi.container.JBIContainer.sendExchange(JBIContainer.java:894)
      at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:395)
      at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.send(DeliveryChannelImpl.java:431)
      at org.apache.servicemix.components.util.PojoSupport.fail(PojoSupport.java:237)
      at org.apache.servicemix.camel.JbiInOnlyWithFaultHandledTrueSpringDSLTest$ReturnFaultComponent.onMessageExchange(JbiInOnlyWithFaultHandledTrueSpringDSLTest.java:101)
      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.st.STFlow.doSend(STFlow.java:49)
      at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.send(AbstractFlow.java:123)
      at org.apache.servicemix.jbi.nmr.DefaultBroker.sendExchangePacket(DefaultBroker.java:283)
      at org.apache.servicemix.jbi.container.JBIContainer.sendExchange(JBIContainer.java:894)
      at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:395)
      at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.send(DeliveryChannelImpl.java:431)
      at org.apache.servicemix.common.EndpointDeliveryChannel.send(EndpointDeliveryChannel.java:88)
      at org.apache.servicemix.common.endpoints.SimpleEndpoint.send(SimpleEndpoint.java:70)
      at org.apache.servicemix.camel.CamelConsumerEndpoint.process(CamelConsumerEndpoint.java:89)
      at org.apache.servicemix.camel.JbiEndpoint$JbiProducer.process(JbiEndpoint.java:98)
      at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:84)
      at org.apache.servicemix.camel.su9.HandleFaultProcessor.process(HandleFaultProcessor.java:47)
      at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68)
      at org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:189)
      at org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:133)
      at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68)
      at org.apache.camel.processor.interceptor.StreamCachingInterceptor.proceed(StreamCachingInterceptor.java:87)
      at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:82)
      at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:52)
      at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:41)
      at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:66)
      at org.apache.servicemix.camel.CamelProviderEndpoint.handleActiveProviderExchange(CamelProviderEndpoint.java:94)
      at org.apache.servicemix.camel.CamelProviderEndpoint.process(CamelProviderEndpoint.java:73)
      at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
      at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:581)
      at org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
      at org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
      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.st.STFlow.doSend(STFlow.java:49)
      at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.send(AbstractFlow.java:123)
      at org.apache.servicemix.jbi.nmr.DefaultBroker.sendExchangePacket(DefaultBroker.java:283)
      at org.apache.servicemix.jbi.container.JBIContainer.sendExchange(JBIContainer.java:894)
      at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:395)
      at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.send(DeliveryChannelImpl.java:431)
      at org.apache.servicemix.client.DefaultServiceMixClient.send(DefaultServiceMixClient.java:148)
      at org.apache.servicemix.camel.JbiInOnlyWithFaultHandledTrueSpringDSLTest.testInOnlyWithFaultHandledByExceptionClause(JbiInOnlyWithFaultHandledTrueSpringDSLTest.java:59)
      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:597)
      at junit.framework.TestCase.runTest(TestCase.java:168)
      at junit.framework.TestCase.runBare(TestCase.java:134)
      at junit.framework.TestResult$1.protect(TestResult.java:110)
      at junit.framework.TestResult.runProtected(TestResult.java:128)
      at junit.framework.TestResult.run(TestResult.java:113)
      at junit.framework.TestCase.run(TestCase.java:124)
      at junit.framework.TestSuite.runTest(TestSuite.java:232)
      at junit.framework.TestSuite.run(TestSuite.java:227)
      at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:81)
      at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:45)
      at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
      Caused by: javax.jbi.messaging.MessagingException: Fault not supported
      at org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setMessage(MessageExchangeImpl.java:366)
      at org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setFault(MessageExchangeImpl.java:290)
      at org.apache.servicemix.camel.JbiExchange.createMessage(JbiExchange.java:166)
      ... 81 more

      Attachments

        1. smxcomp-651-test-smx3.2.patch
          5 kB
          Willem Jiang
        2. smxcomp-651-new.patch
          6 kB
          Willem Jiang
        3. smxcomp-651-test-2009.01.patch
          5 kB
          Ron Gavlin
        4. smxcomp-651-test.patch
          5 kB
          Ron Gavlin

        Activity

          People

            gertvanthienen Gert Vanthienen
            rgavlin Ron Gavlin
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: