Hide Forgot
Description of problem: When sending a message to a Java client with a reply-to address, the client responds with a durable message, even though the original message was not durable and the queue is not durable. Version-Release number of selected component (if applicable): 1.3 GA release How reproducible: always Steps to Reproduce: 1. Create a queue in a C++ client using address string myqueue;{create:always,delete:always,node:{type:queue,durable:False,x-declare:{exclusive:True,auto-delete:True}}} 2. Send a message to a java client through that queue with a reply-to address of myqueue;{node:{type:queue}} 3. Have the java client return the message via the reply-to address. Actual results: The message received back by the original client is marked as durable. Expected results: The message should not be marked durable. Additional info: If the same test is done with a python client responder, the message returned is not marked durable.
This is not a bug. The default delivery mode in JMS is persistent. All messages sent through a message producer is marked persistent unless explicitly set to NON_PERSISTENT.
From JMS spec, section 3.4.2 'JMSDeliveryMode': The JMSDeliveryMode header field contains the delivery mode specified when the message was sent. *When a message is sent, this field is ignored.* After completion of the send, it holds the delivery mode specified by the sending method.