Repository: camel Updated Branches: refs/heads/camel-2.14.x f043eeeee -> 618323a24
CAMEL-7929: OptimisticLockRetryPolicyTest fails from time to time Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/618323a2 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/618323a2 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/618323a2 Branch: refs/heads/camel-2.14.x Commit: 618323a2433f8c08a07d040b674c97b7ff7c604b Parents: f043eee Author: Christian Mueller <cmuel...@apache.org> Authored: Sat Oct 18 19:51:37 2014 +0200 Committer: Christian Mueller <cmuel...@apache.org> Committed: Sat Oct 18 19:52:41 2014 +0200 ---------------------------------------------------------------------- .../OptimisticLockRetryPolicyTest.java | 54 ++++++++++---------- 1 file changed, 27 insertions(+), 27 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/618323a2/camel-core/src/test/java/org/apache/camel/processor/aggregator/OptimisticLockRetryPolicyTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/processor/aggregator/OptimisticLockRetryPolicyTest.java b/camel-core/src/test/java/org/apache/camel/processor/aggregator/OptimisticLockRetryPolicyTest.java index cbea08d..0eadd14 100644 --- a/camel-core/src/test/java/org/apache/camel/processor/aggregator/OptimisticLockRetryPolicyTest.java +++ b/camel-core/src/test/java/org/apache/camel/processor/aggregator/OptimisticLockRetryPolicyTest.java @@ -19,12 +19,9 @@ package org.apache.camel.processor.aggregator; import junit.framework.TestCase; import org.apache.camel.processor.aggregate.OptimisticLockRetryPolicy; -/** - * @version - */ public class OptimisticLockRetryPolicyTest extends TestCase { - private static long precision = 5L; // give or take 5ms + private static long precision = 10L; // give or take 10ms public void testRandomBackOff() throws Exception { OptimisticLockRetryPolicy policy = new OptimisticLockRetryPolicy(); @@ -33,9 +30,8 @@ public class OptimisticLockRetryPolicyTest extends TestCase { policy.setMaximumRetryDelay(500L); for (int i = 0; i < 10; i++) { - long start = System.currentTimeMillis(); - policy.doDelay(i); - long elapsed = System.currentTimeMillis() - start; + long elapsed = doDelay(policy, i); + assertTrue(elapsed <= policy.getMaximumRetryDelay() + precision && elapsed >= 0); } } @@ -47,12 +43,10 @@ public class OptimisticLockRetryPolicyTest extends TestCase { policy.setMaximumRetryDelay(0L); policy.setRetryDelay(50L); - for (int i = 0; i < 10; i++) { - long start = System.currentTimeMillis(); - policy.doDelay(i); - long elapsed = System.currentTimeMillis() - start; - assertTrue(elapsed >= (policy.getRetryDelay() << i) - precision); - assertTrue(elapsed <= (policy.getRetryDelay() << i) + precision); + for (int i = 0; i < 6; i++) { + long elapsed = doDelay(policy, i); + + assertDelay(50L << i, elapsed); } } @@ -64,21 +58,17 @@ public class OptimisticLockRetryPolicyTest extends TestCase { policy.setRetryDelay(50L); for (int i = 0; i < 10; i++) { - long start = System.currentTimeMillis(); - policy.doDelay(i); - long elapsed = System.currentTimeMillis() - start; + long elapsed = doDelay(policy, i); + switch (i) { case 0: - assertTrue(elapsed <= 50 + precision); - assertTrue(elapsed >= 50 - precision); + assertDelay(50L, elapsed); break; case 1: - assertTrue(elapsed <= 100 + precision); - assertTrue(elapsed >= 100 - precision); + assertDelay(100L, elapsed); break; default: - assertTrue(elapsed <= 200 + precision); - assertTrue(elapsed >= 200 - precision); + assertDelay(200L, elapsed); break; } } @@ -92,11 +82,9 @@ public class OptimisticLockRetryPolicyTest extends TestCase { policy.setRetryDelay(50L); for (int i = 0; i < 10; i++) { - long start = System.currentTimeMillis(); - policy.doDelay(i); - long elapsed = System.currentTimeMillis() - start; - assertTrue(elapsed <= policy.getRetryDelay() + precision); - assertTrue(elapsed >= policy.getRetryDelay() - precision); + long elapsed = doDelay(policy, i); + + assertDelay(50L, elapsed); } } @@ -119,4 +107,16 @@ public class OptimisticLockRetryPolicyTest extends TestCase { } } } + + private long doDelay(OptimisticLockRetryPolicy policy, int i) throws InterruptedException { + long start = System.currentTimeMillis(); + policy.doDelay(i); + long elapsed = System.currentTimeMillis() - start; + return elapsed; + } + + private void assertDelay(long expectedDelay, long actualDelay) { + assertTrue(actualDelay <= expectedDelay + precision); + assertTrue(actualDelay >= expectedDelay - precision); + } } \ No newline at end of file