Repository: activemq Updated Branches: refs/heads/activemq-5.13.x 23e9ecaec -> 4782feb6a refs/heads/master 33dded13d -> 386210faf
https://issues.apache.org/jira/browse/AMQ-6159 Ensure proper repeat counts are scheduled. Project: http://git-wip-us.apache.org/repos/asf/activemq/repo Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/386210fa Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/386210fa Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/386210fa Branch: refs/heads/master Commit: 386210fafe331630aded29f2af64b1ccdf161bf3 Parents: 33dded1 Author: Timothy Bish <[email protected]> Authored: Thu Feb 4 17:16:33 2016 -0500 Committer: Timothy Bish <[email protected]> Committed: Thu Feb 4 17:16:58 2016 -0500 ---------------------------------------------------------------------- .../broker/scheduler/memory/InMemoryJobScheduler.java | 5 +++-- .../activemq/broker/scheduler/JmsSchedulerTest.java | 10 ++++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/activemq/blob/386210fa/activemq-broker/src/main/java/org/apache/activemq/broker/scheduler/memory/InMemoryJobScheduler.java ---------------------------------------------------------------------- diff --git a/activemq-broker/src/main/java/org/apache/activemq/broker/scheduler/memory/InMemoryJobScheduler.java b/activemq-broker/src/main/java/org/apache/activemq/broker/scheduler/memory/InMemoryJobScheduler.java index 41be322..bd2aaf5 100644 --- a/activemq-broker/src/main/java/org/apache/activemq/broker/scheduler/memory/InMemoryJobScheduler.java +++ b/activemq-broker/src/main/java/org/apache/activemq/broker/scheduler/memory/InMemoryJobScheduler.java @@ -273,7 +273,9 @@ public class InMemoryJobScheduler implements JobScheduler { private void doReschedule(InMemoryJob job, long nextExecutionTime) { job.setNextTime(nextExecutionTime); job.incrementExecutionCount(); - job.decrementRepeatCount(); + if (!job.isCron()) { + job.decrementRepeatCount(); + } LOG.trace("JobScheduler rescheduling job[{}] to fire at: {}", job.getJobId(), JobSupport.getDateTime(nextExecutionTime)); @@ -291,7 +293,6 @@ public class InMemoryJobScheduler implements JobScheduler { } finally { lock.writeLock().unlock(); } - } private void doRemoveJob(String jobId) throws IOException { http://git-wip-us.apache.org/repos/asf/activemq/blob/386210fa/activemq-unit-tests/src/test/java/org/apache/activemq/broker/scheduler/JmsSchedulerTest.java ---------------------------------------------------------------------- diff --git a/activemq-unit-tests/src/test/java/org/apache/activemq/broker/scheduler/JmsSchedulerTest.java b/activemq-unit-tests/src/test/java/org/apache/activemq/broker/scheduler/JmsSchedulerTest.java index 0ce584d..d0c1ccc 100644 --- a/activemq-unit-tests/src/test/java/org/apache/activemq/broker/scheduler/JmsSchedulerTest.java +++ b/activemq-unit-tests/src/test/java/org/apache/activemq/broker/scheduler/JmsSchedulerTest.java @@ -38,9 +38,13 @@ import org.apache.activemq.ScheduledMessage; import org.apache.activemq.util.ProducerThread; import org.apache.activemq.util.Wait; import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class JmsSchedulerTest extends JobSchedulerTestSupport { + private static final Logger LOG = LoggerFactory.getLogger(JmsSchedulerTest.class); + @Test public void testCron() throws Exception { final int COUNT = 10; @@ -55,8 +59,9 @@ public class JmsSchedulerTest extends JobSchedulerTestSupport { consumer.setMessageListener(new MessageListener() { @Override public void onMessage(Message message) { - latch.countDown(); count.incrementAndGet(); + latch.countDown(); + LOG.info("Received scheduled message, waiting for {} more", latch.getCount()); } }); @@ -167,8 +172,9 @@ public class JmsSchedulerTest extends JobSchedulerTestSupport { consumer.setMessageListener(new MessageListener() { @Override public void onMessage(Message message) { - latch.countDown(); count.incrementAndGet(); + latch.countDown(); + LOG.info("Received scheduled message, waiting for {} more", latch.getCount()); } });
