Uploaded image for project: 'Tuscany'
  1. Tuscany
  2. TUSCANY-4018

JMS TransportServiceInterceptor using wrong values to set JMS headers in producer

    XMLWordPrintableJSON

Details

    • 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());

      Attachments

        1. Tuscany-4018.patch
          2 kB
          Jennifer Thompson

        Activity

          People

            simonslaws Simon Laws
            jennthom Jennifer Thompson
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: