[ https://issues.apache.org/activemq/browse/SM-782?page=comments#action_37732 ] Guillaume Nodet commented on SM-782: ------------------------------------
We can not put the context directly in the message exchange, because all properties put inside the exchange / message must be serializable, else clustering fails. Upon redeployment, everything is recreated, so I don't think how setting the pendingMessages to null would solve the problem. But a modified patch should be fine. > Re-deploy with In-Only Mep > -------------------------- > > Key: SM-782 > URL: https://issues.apache.org/activemq/browse/SM-782 > Project: ServiceMix > Issue Type: Bug > Components: servicemix-jms > Affects Versions: 3.1 > Environment: Linux x86/ Java (1.5.0_09) > Reporter: Grégoire A. > Attachments: MultiplexingConsumerProcessor.java.2.diff, > MultiplexingConsumerProcessor.java.diff > > > 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. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: https://issues.apache.org/activemq/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
