AMQ-6808 preserve destination for browsed scheduled messages

(cherry picked from commit c691124d3288ffc9299bedca69b952952f2cbcf6)


Project: http://git-wip-us.apache.org/repos/asf/activemq/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/e1699d58
Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/e1699d58
Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/e1699d58

Branch: refs/heads/activemq-5.15.x
Commit: e1699d58c899700a221662d6f4c728cc306ee97b
Parents: d894d57
Author: Erik Wramner <erik.wram...@codemint.com>
Authored: Tue Sep 12 21:46:02 2017 +0200
Committer: Timothy Bish <tabish...@gmail.com>
Committed: Fri Sep 15 09:03:58 2017 -0400

----------------------------------------------------------------------
 .../org/apache/activemq/broker/scheduler/SchedulerBroker.java    | 4 ++++
 .../activemq/broker/scheduler/JobSchedulerManagementTest.java    | 4 ++++
 2 files changed, 8 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq/blob/e1699d58/activemq-broker/src/main/java/org/apache/activemq/broker/scheduler/SchedulerBroker.java
----------------------------------------------------------------------
diff --git 
a/activemq-broker/src/main/java/org/apache/activemq/broker/scheduler/SchedulerBroker.java
 
b/activemq-broker/src/main/java/org/apache/activemq/broker/scheduler/SchedulerBroker.java
index a00b456..5542973 100644
--- 
a/activemq-broker/src/main/java/org/apache/activemq/broker/scheduler/SchedulerBroker.java
+++ 
b/activemq-broker/src/main/java/org/apache/activemq/broker/scheduler/SchedulerBroker.java
@@ -426,6 +426,10 @@ public class SchedulerBroker extends BrokerFilter 
implements JobListener {
             msg.setPersistent(false);
             msg.setType(AdvisorySupport.ADIVSORY_MESSAGE_TYPE);
             msg.setMessageId(new MessageId(this.producerId, 
this.messageIdGenerator.getNextSequenceId()));
+
+            // Preserve original destination
+            msg.setOriginalDestination(msg.getDestination());
+
             msg.setDestination(replyTo);
             msg.setResponseRequired(false);
             msg.setProducerId(this.producerId);

http://git-wip-us.apache.org/repos/asf/activemq/blob/e1699d58/activemq-unit-tests/src/test/java/org/apache/activemq/broker/scheduler/JobSchedulerManagementTest.java
----------------------------------------------------------------------
diff --git 
a/activemq-unit-tests/src/test/java/org/apache/activemq/broker/scheduler/JobSchedulerManagementTest.java
 
b/activemq-unit-tests/src/test/java/org/apache/activemq/broker/scheduler/JobSchedulerManagementTest.java
index c944be3..6f6dc76 100644
--- 
a/activemq-unit-tests/src/test/java/org/apache/activemq/broker/scheduler/JobSchedulerManagementTest.java
+++ 
b/activemq-unit-tests/src/test/java/org/apache/activemq/broker/scheduler/JobSchedulerManagementTest.java
@@ -34,6 +34,7 @@ import javax.jms.Session;
 import javax.jms.TextMessage;
 
 import org.apache.activemq.ScheduledMessage;
+import org.apache.activemq.command.ActiveMQMessage;
 import org.apache.activemq.util.IdGenerator;
 import org.junit.Test;
 import org.slf4j.Logger;
@@ -396,6 +397,9 @@ public class JobSchedulerManagementTest extends 
JobSchedulerTestSupport {
         assertNotNull(message);
         assertEquals(45000, 
message.getLongProperty(ScheduledMessage.AMQ_SCHEDULED_DELAY));
 
+        // Verify that original destination was preserved
+        assertEquals(destination, ((ActiveMQMessage) 
message).getOriginalDestination());
+
         // Now check if there are anymore, there shouldn't be
         message = browser.receive(5000);
         assertNull(message);

Reply via email to