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

Reply via email to