You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by ma...@apache.org on 2015/11/23 21:48:48 UTC

[18/50] [abbrv] incubator-geode git commit: GEODE-545: fix race in testCustomEntryIdleReset

GEODE-545: fix race in testCustomEntryIdleReset


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/355a2d35
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/355a2d35
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/355a2d35

Branch: refs/heads/feature/GEODE-53
Commit: 355a2d35df846b675e25f05d797f9787bd77042a
Parents: 8b04c3d
Author: Darrel Schneider <ds...@pivotal.io>
Authored: Thu Nov 12 16:07:56 2015 -0800
Committer: Darrel Schneider <ds...@pivotal.io>
Committed: Thu Nov 12 16:13:23 2015 -0800

----------------------------------------------------------------------
 .../gemfire/cache30/RegionTestCase.java         | 54 +++++++-------------
 1 file changed, 18 insertions(+), 36 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/355a2d35/gemfire-core/src/test/java/com/gemstone/gemfire/cache30/RegionTestCase.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/test/java/com/gemstone/gemfire/cache30/RegionTestCase.java b/gemfire-core/src/test/java/com/gemstone/gemfire/cache30/RegionTestCase.java
index 35be2d0..0bc0ec0 100644
--- a/gemfire-core/src/test/java/com/gemstone/gemfire/cache30/RegionTestCase.java
+++ b/gemfire-core/src/test/java/com/gemstone/gemfire/cache30/RegionTestCase.java
@@ -3457,7 +3457,7 @@ public abstract class RegionTestCase extends CacheTestCase {
   public void testCustomEntryIdleReset() {
 
     final String name = this.getUniqueName();
-    final int timeout = 200; // ms
+    final int timeout = 200*1000; // ms
     final String key1 = "KEY1";
     final String value = "VALUE";
     
@@ -3475,55 +3475,37 @@ public abstract class RegionTestCase extends CacheTestCase {
     factory.addCacheListener(list);
     RegionAttributes attrs = factory.create();
     
-    Region region = null;
     System.setProperty(LocalRegion.EXPIRY_MS_PROPERTY, "true");
     try {
-      region = createRegion(name, attrs);
+      LocalRegion region = (LocalRegion) createRegion(name, attrs);
 
     // DebuggerSupport.waitForJavaDebugger(getLogWriter(), "Set breakpoint in invalidate");
     ExpiryTask.suspendExpiration();
-    Region.Entry entry = null;
-    long tilt;
     try {
       region.create(key1, value);
-      tilt = System.currentTimeMillis() + timeout;
       assertTrue(list.waitForInvocation(5000));
-      entry = region.getEntry(key1);
+      Region.Entry entry = region.getEntry(key1);
       assertNotNull(entry.getValue());
-    } 
-    finally {
-      ExpiryTask.permitExpiration();
-    }
-    
-    pause(timeout / 2);
-    long now = System.currentTimeMillis();
-    if (entry.getValue() == null && now < tilt) {
-      fail("Entry invalidated " + (tilt - now) + " ms prematurely");
-    }
-    region.get(key1); // touch again
-    
-    waitForInvalidate(entry, tilt);
-
-    // Do it again with a put (I guess)
-    ExpiryTask.suspendExpiration();
-    try {
+      EntryExpiryTask eet = region.getEntryExpiryTask(key1);
+      final long createExpiryTime = eet.getExpirationTime();
+      waitForExpiryClockToChange(region);
+      region.get(key1);
+      assertSame(eet, region.getEntryExpiryTask(key1));
+      final long getExpiryTime = eet.getExpirationTime();
+      if (getExpiryTime - createExpiryTime <= 0L) {
+        fail("get did not reset the expiration time. createExpiryTime=" + createExpiryTime + " getExpiryTime=" + getExpiryTime);
+      }
+      waitForExpiryClockToChange(region);
       region.put(key1, value);
-      tilt = System.currentTimeMillis() + timeout;
-      entry = region.getEntry(key1);
-      assertNotNull(entry.getValue());
+      assertSame(eet, region.getEntryExpiryTask(key1));
+      final long putExpiryTime = eet.getExpirationTime();
+      if (putExpiryTime - getExpiryTime <= 0L) {
+        fail("put did not reset the expiration time. getExpiryTime=" + getExpiryTime + " putExpiryTime=" + putExpiryTime);
+      }
     } 
     finally {
       ExpiryTask.permitExpiration();
     }
-    
-    pause(timeout / 2);
-    now = System.currentTimeMillis();
-    if (entry.getValue() == null && now < tilt) {
-      fail("entry invalidated " + (tilt - now) + " ms prematurely");
-    }
-    region.put(key1, value); // touch
-    
-    waitForInvalidate(entry, tilt);
     } 
     finally {
       System.getProperties().remove(LocalRegion.EXPIRY_MS_PROPERTY);