You are viewing a plain text version of this content. The canonical link for it is here.
Posted to proton@qpid.apache.org by "Jan-Helge Bergesen (JIRA)" <ji...@apache.org> on 2013/02/20 11:43:12 UTC
[jira] [Commented] (PROTON-244) NPE in
org/apache/qpid/proton/jms/InboundTransformer when connecting qpid-client
to qpid-proton in ActiveMQ
[ https://issues.apache.org/jira/browse/PROTON-244?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13582084#comment-13582084 ]
Jan-Helge Bergesen commented on PROTON-244:
-------------------------------------------
When exception occurr, the client will hang:
Daemon Thread [Camel (wms) thread #0 - JmsConsumer[WMSTransactionTopicDestination]] (Suspended)
waiting for: ConnectionEndpoint (id=71)
Object.wait(long) line: not available [native method]
ConnectionEndpoint(Object).wait() line: 485
Sender.close() line: 325
MessageProducerImpl.close() line: 159
JmsUtils.closeMessageProducer(MessageProducer) line: 128
JmsConfiguration$CamelJmsTemplate.doSendToDestination(Destination, MessageCreator, MessageSentCallback, Session) line: 227
JmsConfiguration$CamelJmsTemplate.access$100(JmsConfiguration$CamelJmsTemplate, Destination, MessageCreator, MessageSentCallback, Session) line: 159
JmsConfiguration$CamelJmsTemplate$1.doInJms(Session) line: 173
JmsConfiguration$CamelJmsTemplate(JmsTemplate).execute(SessionCallback<T>, boolean) line: 466
JmsConfiguration$CamelJmsTemplate.send(String, MessageCreator, MessageSentCallback) line: 170
JmsProducer.doSend(boolean, String, Destination, MessageCreator, MessageSentCallback) line: 402
JmsProducer.processInOnly(Exchange, AsyncCallback) line: 356
JmsProducer.process(Exchange, AsyncCallback) line: 132
AsyncProcessorHelper.process(AsyncProcessor, Exchange, AsyncCallback) line: 73
SendProcessor$2.doInAsyncProducer(Producer, AsyncProcessor, Exchange, ExchangePattern, AsyncCallback) line: 122
ProducerCache.doInAsyncProducer(Endpoint, Exchange, ExchangePattern, AsyncCallback, AsyncProducerCallback) line: 298
SendProcessor.process(Exchange, AsyncCallback) line: 117
AsyncProcessorHelper.process(AsyncProcessor, Exchange, AsyncCallback) line: 73
InstrumentationProcessor(DelegateAsyncProcessor).processNext(Exchange, AsyncCallback) line: 99
InstrumentationProcessor(DelegateAsyncProcessor).process(Exchange, AsyncCallback) line: 90
InstrumentationProcessor.process(Exchange, AsyncCallback) line: 73
AsyncProcessorHelper.process(AsyncProcessor, Exchange, AsyncCallback) line: 73
TraceInterceptor(DelegateAsyncProcessor).processNext(Exchange, AsyncCallback) line: 99
TraceInterceptor(DelegateAsyncProcessor).process(Exchange, AsyncCallback) line: 90
TraceInterceptor.process(Exchange, AsyncCallback) line: 91
AsyncProcessorHelper.process(AsyncProcessor, Exchange, AsyncCallback) line: 73
DefaultErrorHandler(RedeliveryErrorHandler).processErrorHandler(Exchange, AsyncCallback, RedeliveryErrorHandler$RedeliveryData) line: 334
DefaultErrorHandler(RedeliveryErrorHandler).process(Exchange, AsyncCallback) line: 220
RouteContextProcessor.processNext(Exchange, AsyncCallback) line: 45
RouteContextProcessor(DelegateAsyncProcessor).process(Exchange, AsyncCallback) line: 90
DefaultChannel.process(Exchange, AsyncCallback) line: 303
AsyncProcessorHelper.process(AsyncProcessor, Exchange, AsyncCallback) line: 73
Pipeline.process(Exchange, Exchange, AsyncCallback, Iterator<Processor>, AsyncProcessor) line: 117
Pipeline.process(Exchange, AsyncCallback) line: 80
AsyncProcessorHelper.process(AsyncProcessor, Exchange, AsyncCallback) line: 73
ChoiceProcessor.process(Exchange, AsyncCallback) line: 85
AsyncProcessorHelper.process(AsyncProcessor, Exchange, AsyncCallback) line: 73
InstrumentationProcessor(DelegateAsyncProcessor).processNext(Exchange, AsyncCallback) line: 99
InstrumentationProcessor(DelegateAsyncProcessor).process(Exchange, AsyncCallback) line: 90
InstrumentationProcessor.process(Exchange, AsyncCallback) line: 73
AsyncProcessorHelper.process(AsyncProcessor, Exchange, AsyncCallback) line: 73
TraceInterceptor(DelegateAsyncProcessor).processNext(Exchange, AsyncCallback) line: 99
TraceInterceptor(DelegateAsyncProcessor).process(Exchange, AsyncCallback) line: 90
TraceInterceptor.process(Exchange, AsyncCallback) line: 91
AsyncProcessorHelper.process(AsyncProcessor, Exchange, AsyncCallback) line: 73
DefaultErrorHandler(RedeliveryErrorHandler).processErrorHandler(Exchange, AsyncCallback, RedeliveryErrorHandler$RedeliveryData) line: 334
DefaultErrorHandler(RedeliveryErrorHandler).process(Exchange, AsyncCallback) line: 220
RouteContextProcessor.processNext(Exchange, AsyncCallback) line: 45
RouteContextProcessor(DelegateAsyncProcessor).process(Exchange, AsyncCallback) line: 90
DefaultChannel.process(Exchange, AsyncCallback) line: 303
AsyncProcessorHelper.process(AsyncProcessor, Exchange, AsyncCallback) line: 73
Pipeline.process(Exchange, Exchange, AsyncCallback, Iterator<Processor>, AsyncProcessor) line: 117
Pipeline.process(Exchange, AsyncCallback) line: 80
RouteContextProcessor.processNext(Exchange, AsyncCallback) line: 45
RouteContextProcessor(DelegateAsyncProcessor).process(Exchange, AsyncCallback) line: 90
UnitOfWorkProcessor.processAsync(Exchange, AsyncCallback, UnitOfWork) line: 150
UnitOfWorkProcessor.process(Exchange, AsyncCallback) line: 117
RouteInflightRepositoryProcessor.processNext(Exchange, AsyncCallback) line: 48
RouteInflightRepositoryProcessor(DelegateAsyncProcessor).process(Exchange, AsyncCallback) line: 90
AsyncProcessorHelper.process(AsyncProcessor, Exchange, AsyncCallback) line: 73
InstrumentationProcessor(DelegateAsyncProcessor).processNext(Exchange, AsyncCallback) line: 99
InstrumentationProcessor(DelegateAsyncProcessor).process(Exchange, AsyncCallback) line: 90
InstrumentationProcessor.process(Exchange, AsyncCallback) line: 73
AsyncProcessorHelper.process(AsyncProcessor, Exchange) line: 99
InstrumentationProcessor(DelegateAsyncProcessor).process(Exchange) line: 86
EndpointMessageListener.onMessage(Message) line: 104
DefaultJmsMessageListenerContainer(AbstractMessageListenerContainer).doInvokeListener(MessageListener, Message) line: 562
DefaultJmsMessageListenerContainer(AbstractMessageListenerContainer).invokeListener(Session, Message) line: 500
DefaultJmsMessageListenerContainer(AbstractMessageListenerContainer).doExecuteListener(Session, Message) line: 468
DefaultJmsMessageListenerContainer(AbstractPollingMessageListenerContainer).doReceiveAndExecute(Object, Session, MessageConsumer, TransactionStatus) line: 325
DefaultJmsMessageListenerContainer(AbstractPollingMessageListenerContainer).receiveAndExecute(Object, Session, MessageConsumer) line: 263
DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener() line: 1069
DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop() line: 1061
DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run() line: 958
ThreadPoolExecutor$Worker.runTask(Runnable) line: 886
ThreadPoolExecutor$Worker.run() line: 908
Thread.run() line: 662
> NPE in org/apache/qpid/proton/jms/InboundTransformer when connecting qpid-client to qpid-proton in ActiveMQ
> -----------------------------------------------------------------------------------------------------------
>
> Key: PROTON-244
> URL: https://issues.apache.org/jira/browse/PROTON-244
> Project: Qpid Proton
> Issue Type: Bug
> Components: proton-j
> Affects Versions: 0.3
> Reporter: Jan-Helge Bergesen
> Attachments: PROTON-244.logexcerpt.txt
>
>
> Connecting a ConnectionFactory from qpid-amqp-1-0-client-jms version 0.20 to ActiveMQ 5.8.0, yields NPE:
> org.apache.activemq.transport.amqp.AmqpProtocolException: Could not process AMQP commands
> at org.apache.activemq.transport.amqp.AmqpProtocolConverter.onFrame(AmqpProtocolConverter.java:245)
> at org.apache.activemq.transport.amqp.AmqpProtocolConverter.onAMQPData(AmqpProtocolConverter.java:151)
> at org.apache.activemq.transport.amqp.AmqpTransportFilter.onCommand(AmqpTransportFilter.java:94)
> at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
> at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:214)
> at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:196)
> at java.lang.Thread.run(Thread.java:662)
> Caused by: java.lang.NullPointerException
> at org.apache.qpid.proton.jms.InboundTransformer.populateMessage(InboundTransformer.java:146)
> at org.apache.qpid.proton.jms.AMQPNativeInboundTransformer.transform(AMQPNativeInboundTransformer.java:37)
> at org.apache.activemq.transport.amqp.AmqpProtocolConverter$ProducerContext.onMessage(AmqpProtocolConverter.java:454)
> at org.apache.activemq.transport.amqp.AmqpProtocolConverter$BaseProducerContext.onDelivery(AmqpProtocolConverter.java:435)
> at org.apache.activemq.transport.amqp.AmqpProtocolConverter.onFrame(AmqpProtocolConverter.java:215)
> ... 6 more
> Looking at https://github.com/apache/qpid-proton/blob/trunk/proton-j/contrib/proton-jms/src/main/java/org/apache/qpid/proton/jms/InboundTransformer.java#L146
> It would seems that qpid-amqp-1-0-client-jms sends a message with header "x-opt-jms-type" with value NULL.
> This might very well be an invalid combination of client/broker setup -- however, the proton-jms code could possibly benefit from utilizing String.valueOf(..) instead of getValue().toString() (or similar) :-)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira