Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
Java-SCA-2.x
-
None
-
Patch Available
Description
In TransportServiceInterceptor.invokeResponse is setting the effective TimeToLive, Priority in the response message, but when the values are set in the producer, the values from the request are used, potentially leading to an incorrect value. So the following:
// Set jms header attributes in producer, not message.
int deliveryMode = requestJMSMsg.getJMSDeliveryMode();
producer.setDeliveryMode(deliveryMode);
int deliveryPriority = requestJMSMsg.getJMSPriority();
producer.setPriority(deliveryPriority);
long timeToLive = requestJMSMsg.getJMSExpiration();
producer.setTimeToLive(timeToLive);
Should be:
// Set jms header attributes in producer, not message.
producer.setDeliveryMode(responseJMSMsg.getJMSDeliveryMode());
producer.setPriority(responseJMSMsg.getJMSPriority());
producer.setTimeToLive(responseJMSMsg.getJMSExpiration());