Details
-
Bug
-
Resolution: Done
-
Minor
-
1.0.0-GA
-
None
-
User Experience
-
Description
Having a simple consumer client (can provide source code) that tries to decode a message as TextMessage but fails as the message contains a binary content, the client raises exception:
javax.jms.JMSException: Cannot decode String in UTF-8 at org.apache.qpid.jms.exceptions.JmsExceptionSupport.create(JmsExceptionSupport.java:66) at org.apache.qpid.jms.provider.amqp.message.AmqpJmsTextMessageFacade.getText(AmqpJmsTextMessageFacade.java:111) at org.apache.qpid.jms.provider.amqp.message.AmqpJmsTextMessageFacade.copy(AmqpJmsTextMessageFacade.java:89) at org.apache.qpid.jms.provider.amqp.message.AmqpJmsTextMessageFacade.copy(AmqpJmsTextMessageFacade.java:44) at org.apache.qpid.jms.message.JmsTextMessage.copy(JmsTextMessage.java:36) at org.apache.qpid.jms.message.JmsTextMessage.copy(JmsTextMessage.java:25) at org.apache.qpid.jms.JmsMessageConsumer.copy(JmsMessageConsumer.java:265) at org.apache.qpid.jms.JmsMessageConsumer$MessageDeliverTask.run(JmsMessageConsumer.java:583) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) Caused by: java.nio.charset.MalformedInputException: Input length = 2 at java.nio.charset.CoderResult.throwException(CoderResult.java:277) at java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:798) at org.apache.qpid.jms.provider.amqp.message.AmqpJmsTextMessageFacade.getText(AmqpJmsTextMessageFacade.java:108) ... 9 more
and closes the AMQP 1.0 connection. So far so good.
But, seldomly (1/1000 to 1/100 probability), the client sends "flow" performative after sending "close" performative on the AMQP1.0 communication. This violates AMQP specification, in particular:
2.7.9 Close:
.. It is illegal to send any more frames (or bytes of any other kind) after sending a close frame.
Attachments
Issue Links
- relates to
-
PROTON-1114 Loading...
-
QPIDJMS-148 Loading...