[ 
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

Reply via email to