Uploaded image for project: 'ServiceMix'
  1. ServiceMix
  2. SM-782

Re-deploy with In-Only Mep

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 3.1
    • 3.1
    • servicemix-jms
    • None
    • Linux x86/ Java (1.5.0_09)

    Description

      First deploy JMS-endpoint with target InOnly Service like Mail.
      Run several call.
      redeploy the same JMS-endpoint without modification.
      And recall the service, u should have this exception.
      It could be a safe thread pb, this error is launched in 75% of the cases.

      I think the context of the message cannot be refind.

      ERROR - JmsComponent - Error
      processing exchange InOnly[
      id: ID:jjp-34393-1166462101789-6:229
      status: Done
      role: consumer
      service:

      {urn:fr.gouv.hello}

      mailSender
      endpoint: mailSender
      in: <?xml version="1.0"
      encoding="UTF-8"?><ns1:HashString
      xmlns:ns1="http://tempuri.org/HashService/HashClass"
      xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
      xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
      xmlns:ZSI="http://www.zolera.com/schemas/ZSI/"
      xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><ns1:Str>Message
      Change dans BPEL 4 JMS Service
      </ns1:Str><ns1:HashType>MD5</ns1:HashType></ns1:HashString>
      ]
      java.lang.NullPointerException
      at
      org.apache.servicemix.jms.multiplexing.MultiplexingConsumerProcessor.process(MultiplexingConsumerProcessor.java:105)
      at
      org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:490)
      at
      org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:464)
      at
      org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
      at
      org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610)
      at
      org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174)
      at
      org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:176)
      at
      org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
      at
      edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
      at
      edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
      at java.lang.Thread.run(Thread.java:595)
      ERROR - JmsComponent - Error setting
      exchange status to ERROR
      javax.jbi.messaging.MessagingException: illegal call
      to send / sendSync
      at
      org.apache.servicemix.jbi.messaging.MessageExchangeImpl.handleSend(MessageExchangeImpl.java:571)
      at
      org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:350)
      at
      org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.send(DeliveryChannelImpl.java:397)
      at
      org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:58)
      at
      org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610)
      at
      org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174)
      at
      org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:176)
      at
      org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
      at
      edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
      at
      edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
      at java.lang.Thread.run(Thread.java:595)

      and this is my configuration
      <jms:endpoint service="hello:jmsReceiver"
      endpoint="HELLOJmsReceiver"
      targetService="hello:mailSender"
      role="consumer"
      destinationStyle="queue"
      jmsProviderDestinationName="jms/queue/hello"
      connectionFactory="#jmsFactory"
      defaultMep="http://www.w3.org/2004/08/wsdl/in-only" />

      FYI: when you block SMX with in a debugger, it seems to
      work fine.

      Attachments

        1. MultiplexingConsumerProcessor.java.3.diff
          4 kB
          Grégoire A.
        2. MultiplexingConsumerProcessor.java.2.diff
          3 kB
          Grégoire A.
        3. MultiplexingConsumerProcessor.java.diff
          3 kB
          Grégoire A.

        Activity

          People

            gnodet Guillaume Nodet
            keo Grégoire A.
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: