You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by ds...@apache.org on 2017/04/11 17:52:47 UTC

[15/16] geode git commit: Revert "Revert "GEODE-2485: fix leak in tx suspend/resume""

Revert "Revert "GEODE-2485: fix leak in tx suspend/resume""

This reverts commit 591391e0e9880d43eb57c39a7ab9c9b00d3e58df.


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

Branch: refs/heads/feature/GEODE-2485
Commit: 0aebf39bd1e8cc85ba80ad5ea8b2f2f7b441600d
Parents: 591391e
Author: Darrel Schneider <ds...@pivotal.io>
Authored: Tue Apr 11 10:40:26 2017 -0700
Committer: Darrel Schneider <ds...@pivotal.io>
Committed: Tue Apr 11 10:40:26 2017 -0700

----------------------------------------------------------------------
 .../cache/query/internal/DefaultQuery.java      |  2 +-
 .../query/internal/index/IndexManager.java      |  4 +-
 .../org/apache/geode/internal/SystemTimer.java  |  2 +-
 .../geode/internal/cache/DistributedRegion.java |  6 +-
 .../geode/internal/cache/GemFireCacheImpl.java  | 28 +++++-
 .../geode/internal/cache/LocalRegion.java       |  6 +-
 .../cache/PartitionedRegionDataView.java        |  4 +-
 .../geode/internal/cache/TXManagerImpl.java     | 32 +++++--
 .../apache/geode/internal/cache/TXState.java    |  4 +-
 .../geode/internal/cache/TXStateProxy.java      |  4 +-
 .../geode/internal/cache/TXStateProxyImpl.java  |  8 +-
 .../cache/tier/sockets/CacheClientProxy.java    |  8 +-
 .../pdx/internal/PeerTypeRegistration.java      |  2 +-
 .../org/apache/geode/TXExpiryJUnitTest.java     |  2 +-
 .../test/java/org/apache/geode/TXJUnitTest.java | 98 ++++++++++----------
 .../geode/cache30/MultiVMRegionTestCase.java    |  6 +-
 .../cache/ClientServerTransactionDUnitTest.java | 12 +--
 .../internal/cache/GemFireCacheImplTest.java    | 23 +++++
 .../cache/RemoteTransactionDUnitTest.java       | 50 +++++-----
 .../cache/TransactionsWithDeltaDUnitTest.java   |  2 +-
 .../cache/execute/MyTransactionFunction.java    |  8 +-
 21 files changed, 188 insertions(+), 123 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/geode/blob/0aebf39b/geode-core/src/main/java/org/apache/geode/cache/query/internal/DefaultQuery.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/cache/query/internal/DefaultQuery.java b/geode-core/src/main/java/org/apache/geode/cache/query/internal/DefaultQuery.java
index a721091..544fc13 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/query/internal/DefaultQuery.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/query/internal/DefaultQuery.java
@@ -599,7 +599,7 @@ public class DefaultQuery implements Query {
       updateStatistics(endTime - startTime);
       pdxClassToFieldsMap.remove();
       pdxClassToMethodsMap.remove();
-      ((TXManagerImpl) this.cache.getCacheTransactionManager()).resume(tx);
+      ((TXManagerImpl) this.cache.getCacheTransactionManager()).internalResume(tx);
     }
   }
 

http://git-wip-us.apache.org/repos/asf/geode/blob/0aebf39b/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/IndexManager.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/IndexManager.java b/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/IndexManager.java
index 6cf9a3f..ed4f47f 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/IndexManager.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/IndexManager.java
@@ -407,7 +407,7 @@ public class IndexManager {
       DefaultQuery.setPdxReadSerialized(this.region.getCache(), oldReadSerialized);
 
       if (tx != null) {
-        ((TXManagerImpl) this.region.getCache().getCacheTransactionManager()).resume(tx);
+        ((TXManagerImpl) this.region.getCache().getCacheTransactionManager()).internalResume(tx);
       }
     }
   }
@@ -1138,7 +1138,7 @@ public class IndexManager {
     } finally {
       DefaultQuery.setPdxReadSerialized(this.region.getCache(), false);
       if (tx != null) {
-        ((TXManagerImpl) this.region.getCache().getCacheTransactionManager()).resume(tx);
+        ((TXManagerImpl) this.region.getCache().getCacheTransactionManager()).internalResume(tx);
       }
       getCachePerfStats().endIndexUpdate(startPA);
     }

http://git-wip-us.apache.org/repos/asf/geode/blob/0aebf39b/geode-core/src/main/java/org/apache/geode/internal/SystemTimer.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/internal/SystemTimer.java b/geode-core/src/main/java/org/apache/geode/internal/SystemTimer.java
index bddd062..16227d2 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/SystemTimer.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/SystemTimer.java
@@ -43,7 +43,7 @@ import org.apache.geode.internal.logging.log4j.LocalizedMessage;
  *      TODO -- with Java 1.5, this will be a template type so that the swarm's class can be
  *      specified.
  */
-public final class SystemTimer {
+public class SystemTimer {
   private static final Logger logger = LogService.getLogger();
 
   final static private boolean isIBM =

http://git-wip-us.apache.org/repos/asf/geode/blob/0aebf39b/geode-core/src/main/java/org/apache/geode/internal/cache/DistributedRegion.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/DistributedRegion.java b/geode-core/src/main/java/org/apache/geode/internal/cache/DistributedRegion.java
index c12a652..8cdc517 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/DistributedRegion.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/DistributedRegion.java
@@ -3949,7 +3949,7 @@ public class DistributedRegion extends LocalRegion implements CacheDistributionA
   protected VersionTag fetchRemoteVersionTag(Object key) {
     VersionTag tag = null;
     assert this.dataPolicy != DataPolicy.REPLICATE;
-    TransactionId txId = cache.getCacheTransactionManager().suspend();
+    final TXStateProxy tx = cache.getTXMgr().internalSuspend();
     try {
       boolean retry = true;
       InternalDistributedMember member = getRandomReplicate();
@@ -3971,8 +3971,8 @@ public class DistributedRegion extends LocalRegion implements CacheDistributionA
         }
       }
     } finally {
-      if (txId != null) {
-        cache.getCacheTransactionManager().resume(txId);
+      if (tx != null) {
+        cache.getTXMgr().internalResume(tx);
       }
     }
     return tag;

http://git-wip-us.apache.org/repos/asf/geode/blob/0aebf39b/geode-core/src/main/java/org/apache/geode/internal/cache/GemFireCacheImpl.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/GemFireCacheImpl.java b/geode-core/src/main/java/org/apache/geode/internal/cache/GemFireCacheImpl.java
index 1575517..08f916b 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/GemFireCacheImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/GemFireCacheImpl.java
@@ -2437,7 +2437,7 @@ public class GemFireCacheImpl
         }
         ((DynamicRegionFactoryImpl) DynamicRegionFactory.get()).close();
         if (this.txMgr != null) {
-          this.txMgr.resume(tx);
+          this.txMgr.internalResume(tx);
         }
         TXCommitMessage.getTracker().clearForCacheClose();
       }
@@ -3937,6 +3937,32 @@ public class GemFireCacheImpl
   }
 
   /**
+   * For use by unit tests to inject a mocked ccpTimer
+   */
+  void setCCPTimer(SystemTimer ccpTimer) {
+    this.ccpTimer = ccpTimer;
+  }
+
+  static final int PURGE_INTERVAL = 1000;
+  private int cancelCount = 0;
+
+  /**
+   * Does a periodic purge of the CCPTimer to prevent a large number of cancelled tasks from
+   * building up in it. See GEODE-2485.
+   */
+  public void purgeCCPTimer() {
+    synchronized (ccpTimerMutex) {
+      if (ccpTimer != null) {
+        cancelCount++;
+        if (cancelCount == PURGE_INTERVAL) {
+          cancelCount = 0;
+          ccpTimer.timerPurge();
+        }
+      }
+    }
+  }
+
+  /**
    * @see LocalRegion
    */
   private final ExpirationScheduler expirationScheduler;

http://git-wip-us.apache.org/repos/asf/geode/blob/0aebf39b/geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegion.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegion.java b/geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegion.java
index 957038c..d0aacc2 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegion.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegion.java
@@ -6556,7 +6556,7 @@ public class LocalRegion extends AbstractRegion implements LoaderHelperFactory,
         }
       }
     } finally {
-      this.cache.getTXMgr().resume(tx);
+      this.cache.getTXMgr().internalResume(tx);
     }
   }
 
@@ -7180,7 +7180,7 @@ public class LocalRegion extends AbstractRegion implements LoaderHelperFactory,
         dispatchListenerEvent(EnumListenerEvent.AFTER_REGION_INVALIDATE, event);
       }
     } finally {
-      this.cache.getTXMgr().resume(tx);
+      this.cache.getTXMgr().internalResume(tx);
     }
   }
 
@@ -9572,7 +9572,7 @@ public class LocalRegion extends AbstractRegion implements LoaderHelperFactory,
                       key);
                 }
               } finally {
-                this.cache.getTXMgr().resume(tx);
+                this.cache.getTXMgr().internalResume(tx);
               }
               getCachePerfStats().endPut(startPut, event.isOriginRemote());
             }

http://git-wip-us.apache.org/repos/asf/geode/blob/0aebf39b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionDataView.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionDataView.java b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionDataView.java
index 263df0f..998f944 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionDataView.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionDataView.java
@@ -58,7 +58,7 @@ public class PartitionedRegionDataView extends LocalRegionDataView {
       PartitionedRegion pr = (PartitionedRegion) localRegion;
       return pr.nonTXGetEntry(keyInfo, false, allowTombstones);
     } finally {
-      localRegion.cache.getTXMgr().resume(tx);
+      localRegion.cache.getTXMgr().internalResume(tx);
     }
   }
 
@@ -72,7 +72,7 @@ public class PartitionedRegionDataView extends LocalRegionDataView {
       return r.findObjectInSystem(key, isCreate, tx, generateCallbacks, value, disableCopyOnRead,
           preferCD, requestingClient, clientEvent, returnTombstones);
     } finally {
-      r.cache.getTXMgr().resume(tx);
+      r.cache.getTXMgr().internalResume(tx);
     }
   }
 

http://git-wip-us.apache.org/repos/asf/geode/blob/0aebf39b/geode-core/src/main/java/org/apache/geode/internal/cache/TXManagerImpl.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/TXManagerImpl.java b/geode-core/src/main/java/org/apache/geode/internal/cache/TXManagerImpl.java
index 14fdf99..2948a48 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/TXManagerImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/TXManagerImpl.java
@@ -675,7 +675,7 @@ public class TXManagerImpl implements CacheTransactionManager, MembershipListene
    * @param tx the transaction to activate.
    * @throws IllegalStateException if this thread already has an active transaction
    */
-  public final void resume(TXStateProxy tx) {
+  public void internalResume(TXStateProxy tx) {
     if (tx != null) {
       TransactionId tid = getTransactionId();
       if (tid != null) {
@@ -683,18 +683,18 @@ public class TXManagerImpl implements CacheTransactionManager, MembershipListene
             LocalizedStrings.TXManagerImpl_TRANSACTION_0_ALREADY_IN_PROGRESS
                 .toLocalizedString(tid));
       }
-      if (tx instanceof TXState) {
-        throw new java.lang.IllegalStateException("Found instance of TXState: " + tx);
-      }
       setTXState(tx);
       tx.resume();
-      SystemTimerTask task = this.expiryTasks.remove(tx.getTransactionId());
-      if (task != null) {
-        task.cancel();
-      }
     }
   }
 
+  /**
+   * @deprecated use internalResume instead
+   */
+  public final void resume(TXStateProxy tx) {
+    internalResume(tx);
+  }
+
   public final boolean isClosed() {
     return this.closed;
   }
@@ -1265,7 +1265,7 @@ public class TXManagerImpl implements CacheTransactionManager, MembershipListene
       throw new IllegalStateException(
           LocalizedStrings.TXManagerImpl_UNKNOWN_TRANSACTION_OR_RESUMED.toLocalizedString());
     }
-    resume(txProxy);
+    resumeProxy(txProxy);
   }
 
   public boolean isSuspended(TransactionId transactionId) {
@@ -1278,12 +1278,24 @@ public class TXManagerImpl implements CacheTransactionManager, MembershipListene
     }
     TXStateProxy txProxy = this.suspendedTXs.remove(transactionId);
     if (txProxy != null) {
-      resume(txProxy);
+      resumeProxy(txProxy);
       return true;
     }
     return false;
   }
 
+  private void resumeProxy(TXStateProxy txProxy) {
+    assert txProxy != null;
+    internalResume(txProxy);
+    SystemTimerTask task = this.expiryTasks.remove(txProxy.getTransactionId());
+    if (task != null) {
+      if (task.cancel()) {
+        GemFireCacheImpl cache = (GemFireCacheImpl) this.cache;
+        cache.purgeCCPTimer();
+      }
+    }
+  }
+
   /**
    * this map keeps track of all the threads that are waiting in
    * {@link #tryResume(TransactionId, long, TimeUnit)} for a particular transactionId

http://git-wip-us.apache.org/repos/asf/geode/blob/0aebf39b/geode-core/src/main/java/org/apache/geode/internal/cache/TXState.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/TXState.java b/geode-core/src/main/java/org/apache/geode/internal/cache/TXState.java
index d577f39..234baee 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/TXState.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/TXState.java
@@ -1679,11 +1679,11 @@ public class TXState implements TXStateInterface {
       if (!pr.getBucketPrimary(curr.getBucketId()).equals(pr.cache.getMyId())) {
         // to fix bug 47893 suspend the tx before calling nonTXGetEntry
         final TXManagerImpl txmgr = pr.getGemFireCache().getTXMgr();
-        TransactionId tid = txmgr.suspend();
+        final TXStateProxy tx = txmgr.internalSuspend();
         try {
           return pr.nonTXGetEntry(curr, false, allowTombstones);
         } finally {
-          txmgr.resume(tid);
+          txmgr.internalResume(tx);
         }
       }
     }

http://git-wip-us.apache.org/repos/asf/geode/blob/0aebf39b/geode-core/src/main/java/org/apache/geode/internal/cache/TXStateProxy.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/TXStateProxy.java b/geode-core/src/main/java/org/apache/geode/internal/cache/TXStateProxy.java
index c5e7cf6..d392c41 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/TXStateProxy.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/TXStateProxy.java
@@ -70,8 +70,8 @@ public interface TXStateProxy extends TXStateInterface {
   public void suspend();
 
   /**
-   * Called by {@link TXManagerImpl#resume(TXStateProxy)} to perform additional tasks required to
-   * resume a transaction
+   * Called by {@link TXManagerImpl#internalResume(TXStateProxy)} to perform additional tasks
+   * required to resume a transaction
    */
   public void resume();
 

http://git-wip-us.apache.org/repos/asf/geode/blob/0aebf39b/geode-core/src/main/java/org/apache/geode/internal/cache/TXStateProxyImpl.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/TXStateProxyImpl.java b/geode-core/src/main/java/org/apache/geode/internal/cache/TXStateProxyImpl.java
index a89cdc4..49922a0 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/TXStateProxyImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/TXStateProxyImpl.java
@@ -677,7 +677,7 @@ public class TXStateProxyImpl implements TXStateProxy {
       return getRealDeal(null, localRegion).entryCount(localRegion);
     } finally {
       if (resetTXState) {
-        getTxMgr().resume(txp);
+        getTxMgr().internalResume(txp);
       } else if (txUnlocked) {
         getLock().lock();
       }
@@ -742,7 +742,7 @@ public class TXStateProxyImpl implements TXStateProxy {
           allowTombstones);
     } finally {
       if (resetTxState) {
-        getTxMgr().resume(txp);
+        getTxMgr().internalResume(txp);
       }
     }
 
@@ -770,7 +770,7 @@ public class TXStateProxyImpl implements TXStateProxy {
           allowTombstones);
     } finally {
       if (resetTxState) {
-        getTxMgr().resume(txp);
+        getTxMgr().internalResume(txp);
       }
     }
   }
@@ -940,7 +940,7 @@ public class TXStateProxyImpl implements TXStateProxy {
       return getRealDeal(null, localRegion).getBucketKeys(localRegion, bucketId, false);
     } finally {
       if (resetTxState) {
-        getTxMgr().resume(txp);
+        getTxMgr().internalResume(txp);
       }
     }
   }

http://git-wip-us.apache.org/repos/asf/geode/blob/0aebf39b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/CacheClientProxy.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/CacheClientProxy.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/CacheClientProxy.java
index d7b923c..3b0c2ff 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/CacheClientProxy.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/CacheClientProxy.java
@@ -1970,7 +1970,9 @@ public class CacheClientProxy implements ClientSession {
          */
         Object task = _durableExpirationTask.getAndSet(null);
         if (task != null) {
-          ((SystemTimerTask) task).cancel();
+          if (((SystemTimerTask) task).cancel()) {
+            _cache.purgeCCPTimer();
+          }
         }
       }
 
@@ -1988,7 +1990,9 @@ public class CacheClientProxy implements ClientSession {
             LocalizedStrings.CacheClientProxy_0_CANCELLING_EXPIRATION_TASK_SINCE_THE_CLIENT_HAS_RECONNECTED,
             this));
       }
-      task.cancel();
+      if (task.cancel()) {
+        _cache.purgeCCPTimer();
+      }
     }
   }
 

http://git-wip-us.apache.org/repos/asf/geode/blob/0aebf39b/geode-core/src/main/java/org/apache/geode/pdx/internal/PeerTypeRegistration.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/pdx/internal/PeerTypeRegistration.java b/geode-core/src/main/java/org/apache/geode/pdx/internal/PeerTypeRegistration.java
index 653cafb..ed94c0c 100644
--- a/geode-core/src/main/java/org/apache/geode/pdx/internal/PeerTypeRegistration.java
+++ b/geode-core/src/main/java/org/apache/geode/pdx/internal/PeerTypeRegistration.java
@@ -642,7 +642,7 @@ public class PeerTypeRegistration implements TypeRegistration {
   private void resumeTX(TXStateProxy state) {
     if (state != null) {
       TXManagerImpl txManager = state.getTxMgr();
-      txManager.resume(state);
+      txManager.internalResume(state);
     }
   }
 

http://git-wip-us.apache.org/repos/asf/geode/blob/0aebf39b/geode-core/src/test/java/org/apache/geode/TXExpiryJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/TXExpiryJUnitTest.java b/geode-core/src/test/java/org/apache/geode/TXExpiryJUnitTest.java
index f55926a..077d3e6 100644
--- a/geode-core/src/test/java/org/apache/geode/TXExpiryJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/TXExpiryJUnitTest.java
@@ -200,7 +200,7 @@ public class TXExpiryJUnitTest {
           final TXManagerImpl txMgrImpl = (TXManagerImpl) this.txMgr;
           TXStateProxy tx = txMgrImpl.internalSuspend();
           exprReg.put("key0", checkVal);
-          txMgrImpl.resume(tx);
+          txMgrImpl.internalResume(tx);
           try {
             this.txMgr.commit();
             fail("Expected CommitConflictException!");

http://git-wip-us.apache.org/repos/asf/geode/blob/0aebf39b/geode-core/src/test/java/org/apache/geode/TXJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/TXJUnitTest.java b/geode-core/src/test/java/org/apache/geode/TXJUnitTest.java
index 5166a16..54d9e50 100644
--- a/geode-core/src/test/java/org/apache/geode/TXJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/TXJUnitTest.java
@@ -4363,7 +4363,7 @@ public class TXJUnitTest {
       assertTrue(!reg1.containsKey("key1"));
       assertEquals("LV 4", reg1.get("key1"));
       assertTrue(reg1.containsKey("key1"));
-      txMgrImpl.resume(tx);
+      txMgrImpl.internalResume(tx);
       assertEquals("txValue", reg1.getEntry("key1").getValue());
       assertEquals("txValue", reg1.get("key1"));
       try {
@@ -4409,7 +4409,7 @@ public class TXJUnitTest {
       reg1.create("key1", "txValue");
       assertTrue(reg1.containsKey("key1"));
       assertEquals("txValue", reg1.get("key1"));
-      txMgrImpl.resume(tx);
+      txMgrImpl.internalResume(tx);
       assertEquals("LV 8", reg1.getEntry("key1").getValue());
       try {
         this.txMgr.commit(); // should conflict
@@ -4440,7 +4440,7 @@ public class TXJUnitTest {
       assertTrue(reg1.containsKey("key1"));
       assertEquals("txValue2", reg1.get("key1"));
       assertEquals("txValue2", reg1.getEntry("key1").getValue());
-      txMgrImpl.resume(tx);
+      txMgrImpl.internalResume(tx);
       assertEquals("txValue", reg1.getEntry("key1").getValue());
       assertEquals("txValue", reg1.get("key1"));
       try {
@@ -4785,7 +4785,7 @@ public class TXJUnitTest {
     TXStateProxy tx = txMgrImpl.internalSuspend();
     this.region.put("stats1", "stats success1");
     this.region.put("stats2", "stats success2");
-    txMgrImpl.resume(tx);
+    txMgrImpl.internalResume(tx);
     // end other tx simulation
     pause(SLEEP_MS);
     try {
@@ -4937,7 +4937,7 @@ public class TXJUnitTest {
     assertTrue(!this.txMgr.exists());
     assertEquals(null, txMgrImpl.internalSuspend());
     TXStateProxy txProxy = null;
-    txMgrImpl.resume(txProxy);
+    txMgrImpl.internalResume(txProxy);
     assertTrue(!this.txMgr.exists());
 
     this.txMgr.begin();
@@ -4948,13 +4948,13 @@ public class TXJUnitTest {
       assertTrue(!this.txMgr.exists());
       this.txMgr.begin();
       try {
-        txMgrImpl.resume(tx);
+        txMgrImpl.internalResume(tx);
         fail("expected IllegalStateException");
       } catch (IllegalStateException expected) {
       }
       this.txMgr.rollback();
       assertTrue(!this.txMgr.exists());
-      txMgrImpl.resume(tx);
+      txMgrImpl.internalResume(tx);
     }
     assertTrue(this.txMgr.exists());
     assertEquals(origId, this.txMgr.getTransactionId());
@@ -5069,7 +5069,7 @@ public class TXJUnitTest {
     assertEquals("value1", this.region.get("key1"));
     tx = txMgrImpl.internalSuspend();
     this.region.put("key1", "value2"); // non-tx
-    txMgrImpl.resume(tx);
+    txMgrImpl.internalResume(tx);
 
     assertEquals("value1", this.region.get("key1"));
     txMgrImpl.commit();
@@ -5080,7 +5080,7 @@ public class TXJUnitTest {
     assertEquals("value1", this.region.get("key1"));
     tx = txMgrImpl.internalSuspend();
     this.region.put("key1", "value2"); // non-tx
-    txMgrImpl.resume(tx);
+    txMgrImpl.internalResume(tx);
     assertEquals("value1", this.region.get("key1"));
     this.region.put("key1", "value3");
     assertEquals("value3", this.region.get("key1"));
@@ -5096,7 +5096,7 @@ public class TXJUnitTest {
     this.region.getEntry("key1");
     tx = txMgrImpl.internalSuspend();
     this.region.put("key1", "value2"); // non-tx
-    txMgrImpl.resume(tx);
+    txMgrImpl.internalResume(tx);
 
     assertEquals("value1", this.region.get("key1"));
     txMgrImpl.commit();
@@ -5107,7 +5107,7 @@ public class TXJUnitTest {
     this.region.getEntry("key1");
     tx = txMgrImpl.internalSuspend();
     this.region.put("key1", "value2"); // non-tx
-    txMgrImpl.resume(tx);
+    txMgrImpl.internalResume(tx);
     this.region.put("key1", "value3");
     try {
       txMgrImpl.commit();
@@ -5122,7 +5122,7 @@ public class TXJUnitTest {
     this.region.entrySet(false).iterator().next();
     tx = txMgrImpl.internalSuspend();
     this.region.put("key1", "value2"); // non-tx
-    txMgrImpl.resume(tx);
+    txMgrImpl.internalResume(tx);
 
     assertEquals("value1", this.region.get("key1"));
     txMgrImpl.commit();
@@ -5134,7 +5134,7 @@ public class TXJUnitTest {
     this.region.entrySet(false).iterator().next();
     tx = txMgrImpl.internalSuspend();
     this.region.put("key1", "value2"); // non-tx
-    txMgrImpl.resume(tx);
+    txMgrImpl.internalResume(tx);
     assertEquals("value1", this.region.get("key1"));
     this.region.put("key1", "value3");
     try {
@@ -5149,7 +5149,7 @@ public class TXJUnitTest {
     assertEquals(true, this.region.containsKey("key1"));
     tx = txMgrImpl.internalSuspend();
     this.region.remove("key1"); // non-tx
-    txMgrImpl.resume(tx);
+    txMgrImpl.internalResume(tx);
     assertEquals(true, this.region.containsKey("key1"));
     txMgrImpl.commit();
     this.region.put("key1", "value1"); // non-tx
@@ -5157,7 +5157,7 @@ public class TXJUnitTest {
     assertEquals(true, this.region.containsKey("key1"));
     tx = txMgrImpl.internalSuspend();
     this.region.remove("key1"); // non-tx
-    txMgrImpl.resume(tx);
+    txMgrImpl.internalResume(tx);
     assertEquals(true, this.region.containsKey("key1"));
     this.region.put("key1", "value3");
     assertEquals(true, this.region.containsKey("key1"));
@@ -5172,7 +5172,7 @@ public class TXJUnitTest {
     assertEquals(true, this.region.containsValueForKey("key1"));
     tx = txMgrImpl.internalSuspend();
     this.region.remove("key1"); // non-tx
-    txMgrImpl.resume(tx);
+    txMgrImpl.internalResume(tx);
     assertEquals(true, this.region.containsValueForKey("key1"));
     txMgrImpl.commit();
     this.region.put("key1", "value1"); // non-tx
@@ -5180,7 +5180,7 @@ public class TXJUnitTest {
     assertEquals(true, this.region.containsValueForKey("key1"));
     tx = txMgrImpl.internalSuspend();
     this.region.remove("key1"); // non-tx
-    txMgrImpl.resume(tx);
+    txMgrImpl.internalResume(tx);
     assertEquals(true, this.region.containsValueForKey("key1"));
     this.region.put("key1", "value3");
     assertEquals(true, this.region.containsValueForKey("key1"));
@@ -5198,7 +5198,7 @@ public class TXJUnitTest {
     assertEquals(null, this.region.get("key1"));
     tx = txMgrImpl.internalSuspend();
     this.region.put("key1", "value2"); // non-tx
-    txMgrImpl.resume(tx);
+    txMgrImpl.internalResume(tx);
 
     assertEquals(null, this.region.get("key1"));
     txMgrImpl.commit();
@@ -5209,7 +5209,7 @@ public class TXJUnitTest {
     assertEquals(null, this.region.get("key1"));
     tx = txMgrImpl.internalSuspend();
     this.region.put("key1", "value2"); // non-tx
-    txMgrImpl.resume(tx);
+    txMgrImpl.internalResume(tx);
     assertEquals(null, this.region.get("key1"));
     this.region.put("key1", "value3");
     assertEquals("value3", this.region.get("key1"));
@@ -5225,7 +5225,7 @@ public class TXJUnitTest {
     assertEquals(null, this.region.getEntry("key1"));
     tx = txMgrImpl.internalSuspend();
     this.region.put("key1", "value2"); // non-tx
-    txMgrImpl.resume(tx);
+    txMgrImpl.internalResume(tx);
 
     assertEquals(null, this.region.getEntry("key1"));
     txMgrImpl.commit();
@@ -5236,7 +5236,7 @@ public class TXJUnitTest {
     assertEquals(null, this.region.getEntry("key1"));
     tx = txMgrImpl.internalSuspend();
     this.region.put("key1", "value2"); // non-tx
-    txMgrImpl.resume(tx);
+    txMgrImpl.internalResume(tx);
     assertEquals(null, this.region.getEntry("key1"));
     this.region.put("key1", "value3");
     try {
@@ -5251,7 +5251,7 @@ public class TXJUnitTest {
     assertEquals(false, this.region.containsKey("key1"));
     tx = txMgrImpl.internalSuspend();
     this.region.put("key1", "value2"); // non-tx
-    txMgrImpl.resume(tx);
+    txMgrImpl.internalResume(tx);
     assertEquals(false, this.region.containsKey("key1"));
     txMgrImpl.commit();
     this.region.remove("key1"); // non-tx
@@ -5259,7 +5259,7 @@ public class TXJUnitTest {
     assertEquals(false, this.region.containsKey("key1"));
     tx = txMgrImpl.internalSuspend();
     this.region.put("key1", "value2"); // non-tx
-    txMgrImpl.resume(tx);
+    txMgrImpl.internalResume(tx);
     assertEquals(false, this.region.containsKey("key1"));
     this.region.put("key1", "value3");
     assertEquals(true, this.region.containsKey("key1"));
@@ -5275,7 +5275,7 @@ public class TXJUnitTest {
     assertEquals(false, this.region.containsValueForKey("key1"));
     tx = txMgrImpl.internalSuspend();
     this.region.put("key1", "value2"); // non-tx
-    txMgrImpl.resume(tx);
+    txMgrImpl.internalResume(tx);
     assertEquals(false, this.region.containsValueForKey("key1"));
     txMgrImpl.commit();
     this.region.remove("key1"); // non-tx
@@ -5283,7 +5283,7 @@ public class TXJUnitTest {
     assertEquals(false, this.region.containsValueForKey("key1"));
     tx = txMgrImpl.internalSuspend();
     this.region.put("key1", "value2"); // non-tx
-    txMgrImpl.resume(tx);
+    txMgrImpl.internalResume(tx);
     assertEquals(false, this.region.containsValueForKey("key1"));
     this.region.put("key1", "value3");
     assertEquals(true, this.region.containsValueForKey("key1"));
@@ -5301,7 +5301,7 @@ public class TXJUnitTest {
     this.region.localInvalidate("key1"); // should be a noop since it is already invalid
     tx = txMgrImpl.internalSuspend();
     this.region.remove("key1"); // non-tx
-    txMgrImpl.resume(tx);
+    txMgrImpl.internalResume(tx);
     txMgrImpl.commit();
     assertEquals(false, this.region.containsKey("key1"));
 
@@ -5312,7 +5312,7 @@ public class TXJUnitTest {
     this.region.localInvalidate("key1"); // should be a noop since it is already invalid
     tx = txMgrImpl.internalSuspend();
     this.region.remove("key1"); // non-tx
-    txMgrImpl.resume(tx);
+    txMgrImpl.internalResume(tx);
     assertEquals(true, this.region.containsKey("key1"));
     assertEquals(false, this.region.containsValueForKey("key1"));
     txMgrImpl.commit();
@@ -5328,7 +5328,7 @@ public class TXJUnitTest {
     }
     tx = txMgrImpl.internalSuspend();
     this.region.create("key1", "value1"); // non-tx
-    txMgrImpl.resume(tx);
+    txMgrImpl.internalResume(tx);
     assertEquals(false, this.region.containsKey("key1"));
     txMgrImpl.commit();
     assertEquals(true, this.region.containsKey("key1"));
@@ -5344,7 +5344,7 @@ public class TXJUnitTest {
     }
     tx = txMgrImpl.internalSuspend();
     this.region.remove("key1"); // non-tx
-    txMgrImpl.resume(tx);
+    txMgrImpl.internalResume(tx);
     assertEquals(true, this.region.containsKey("key1"));
     txMgrImpl.commit();
     assertEquals(false, this.region.containsKey("key1"));
@@ -5366,7 +5366,7 @@ public class TXJUnitTest {
     this.region.put("key1", "value1");
     tx = txMgrImpl.internalSuspend();
     this.region.put("key1", "value2"); // do a non-tx put to force conflict
-    txMgrImpl.resume(tx);
+    txMgrImpl.internalResume(tx);
     try {
       txMgrImpl.commit();
       fail("expected CommitConflictException");
@@ -5389,7 +5389,7 @@ public class TXJUnitTest {
     this.region.put("key1", "value1");
     tx = txMgrImpl.internalSuspend();
     this.region.put("key1", "value2"); // do a non-tx put to force conflict
-    txMgrImpl.resume(tx);
+    txMgrImpl.internalResume(tx);
     try {
       txMgrImpl.commit();
       fail("expected CommitConflictException");
@@ -5410,7 +5410,7 @@ public class TXJUnitTest {
     this.region.create("key1", "value1");
     tx = txMgrImpl.internalSuspend();
     this.region.put("key1", "value2"); // do a non-tx put to force conflict
-    txMgrImpl.resume(tx);
+    txMgrImpl.internalResume(tx);
     try {
       txMgrImpl.commit();
       fail("expected CommitConflictException");
@@ -5433,7 +5433,7 @@ public class TXJUnitTest {
     this.region.localInvalidate("key1");
     tx = txMgrImpl.internalSuspend();
     this.region.put("key1", "value2"); // do a non-tx put to force conflict
-    txMgrImpl.resume(tx);
+    txMgrImpl.internalResume(tx);
     try {
       txMgrImpl.commit();
       fail("expected CommitConflictException");
@@ -5456,7 +5456,7 @@ public class TXJUnitTest {
     this.region.invalidate("key1");
     tx = txMgrImpl.internalSuspend();
     this.region.put("key1", "value2"); // do a non-tx put to force conflict
-    txMgrImpl.resume(tx);
+    txMgrImpl.internalResume(tx);
     try {
       txMgrImpl.commit();
       fail("expected CommitConflictException");
@@ -5470,7 +5470,7 @@ public class TXJUnitTest {
     this.region.create("newKey", "valueTX");
     tx = txMgrImpl.internalSuspend();
     this.region.create("newKey", "valueNONTX");
-    txMgrImpl.resume(tx);
+    txMgrImpl.internalResume(tx);
     this.region.destroy("newKey");
     assertTrue(!this.region.containsKey("key1"));
     try {
@@ -5486,7 +5486,7 @@ public class TXJUnitTest {
     this.region.create("newKey", "valueTX");
     tx = txMgrImpl.internalSuspend();
     this.region.create("newKey", "valueNONTX");
-    txMgrImpl.resume(tx);
+    txMgrImpl.internalResume(tx);
     this.region.localDestroy("newKey");
     assertTrue(!this.region.containsKey("key1"));
     try {
@@ -5510,7 +5510,7 @@ public class TXJUnitTest {
     this.region.localDestroy("key1");
     tx = txMgrImpl.internalSuspend();
     this.region.put("key1", "value2"); // do a non-tx put to force conflict
-    txMgrImpl.resume(tx);
+    txMgrImpl.internalResume(tx);
     try {
       txMgrImpl.commit();
       fail("expected CommitConflictException");
@@ -5532,7 +5532,7 @@ public class TXJUnitTest {
     this.region.destroy("key1");
     tx = txMgrImpl.internalSuspend();
     this.region.put("key1", "value2"); // do a non-tx put to force conflict
-    txMgrImpl.resume(tx);
+    txMgrImpl.internalResume(tx);
     try {
       txMgrImpl.commit();
       fail("expected CommitConflictException");
@@ -5551,7 +5551,7 @@ public class TXJUnitTest {
     this.region.put("key1", "txVal1");
     tx = txMgrImpl.internalSuspend();
     this.region.invalidate("key1");
-    txMgrImpl.resume(tx);
+    txMgrImpl.internalResume(tx);
     txMgrImpl.commit();
     assertEquals("txVal1", this.region.getEntry("key1").getValue());
     this.region.destroy("key1");
@@ -5561,7 +5561,7 @@ public class TXJUnitTest {
     this.region.create("key1", "value1");
     TXStateProxy tis = txMgrImpl.internalSuspend();
     this.region.localDestroyRegion(); // non-tx
-    txMgrImpl.resume(tis);
+    txMgrImpl.internalResume(tis);
 
     try {
       txMgrImpl.commit();
@@ -5842,7 +5842,7 @@ public class TXJUnitTest {
       assertLRUEntries(lruRegion.entrySet(false), lruSize, "key", LRUENTRY_INTEGER);
       assertNull(lruRegion.get("non-tx key0"));
 
-      txMgrImpl.resume(tx);
+      txMgrImpl.internalResume(tx);
       this.txMgr.commit();
       assertLRUEntries(lruRegion.entrySet(false), lruSize, "key", LRUENTRY_LONG);
     }
@@ -5885,7 +5885,7 @@ public class TXJUnitTest {
       assertLRUEntries(lruRegion.entrySet(false), lruSize, "key", LRUENTRY_NULL);
       assertNull(lruRegion.getEntry("non-tx key0"));
 
-      txMgrImpl.resume(tx);
+      txMgrImpl.internalResume(tx);
       this.txMgr.commit();
       assertLRUEntries(lruRegion.entrySet(false), lruSize, "key", LRUENTRY_STRING);
       Iterator it = lruRegion.keySet().iterator();
@@ -5946,13 +5946,13 @@ public class TXJUnitTest {
       assertNull(lruRegion.get("non-tx key0"));
       assertLRUEntries(lruRegion.entrySet(false), lruSize, "key", LRUENTRY_INTEGER);
 
-      txMgrImpl.resume(tx1);
+      txMgrImpl.internalResume(tx1);
       assertLRUEntries(lruRegion.entrySet(false), numToPut, "key", LRUENTRY_LONG);
       // Check to make sure no conflict was caused by non-TX put evictions
       // This should remove all references for each committed entry
       this.txMgr.commit();
       assertLRUEntries(lruRegion.entrySet(false), lruSize, "key", LRUENTRY_LONG);
-      txMgrImpl.resume(tx2);
+      txMgrImpl.internalResume(tx2);
       assertLRUEntries(lruRegion.entrySet(false), numToPut, "key", LRUENTRY_DOUBLE);
       this.txMgr.rollback();
       assertLRUEntries(lruRegion.entrySet(false), lruSize, "key", LRUENTRY_LONG);
@@ -5997,7 +5997,7 @@ public class TXJUnitTest {
       assertNull(lruRegion.get("non-tx key0"));
       assertLRUEntries(lruRegion.entrySet(false), lruSize, "key", LRUENTRY_INTEGER);
 
-      txMgrImpl.resume(tx);
+      txMgrImpl.internalResume(tx);
       assertLRUEntries(lruRegion.entrySet(false), numToPut, "key", LRUENTRY_LONG);
       // This should remove all references for each committed entry
       this.txMgr.rollback();
@@ -6037,7 +6037,7 @@ public class TXJUnitTest {
       // Cause a conflict
       lruRegion.put("key" + (numToPut - 1), new Integer(numToPut - 1));
 
-      txMgrImpl.resume(tx);
+      txMgrImpl.internalResume(tx);
       assertLRUEntries(lruRegion.entrySet(false), numToPut, "key", LRUENTRY_LONG);
       // This should remove all references for each committed entry
       try {
@@ -6143,7 +6143,7 @@ public class TXJUnitTest {
       assertNull(jtaTxMgr.getTransaction());
       this.region.put("syncKey3", "syncVal4");
       assertEquals("syncVal4", this.region.getEntry("syncKey3").getValue());
-      gfTxMgrImpl.resume(gfTx);
+      gfTxMgrImpl.internalResume(gfTx);
       try {
         jtaTxMgr.resume(jtaTx);
       } catch (Exception failure) {
@@ -6389,7 +6389,7 @@ public class TXJUnitTest {
       } catch (Exception failure) {
         fail("JTA resume failed");
       }
-      gfTxMgrImpl.resume(gfTx);
+      gfTxMgrImpl.internalResume(gfTx);
     }
     assertEquals("enlistVal", this.region.get("enlistKey"));
     try {
@@ -6837,7 +6837,7 @@ public class TXJUnitTest {
     TXStateProxy tx = ctm.internalSuspend();
     assertTrue(!pr.containsKey("stuff"));
     assertTrue(!r.containsKey("stuff"));
-    ctm.resume(tx);
+    ctm.internalResume(tx);
     ctm.commit();
     assertTrue(pr.containsKey("stuff"));
     assertTrue(r.containsKey("stuff"));

http://git-wip-us.apache.org/repos/asf/geode/blob/0aebf39b/geode-core/src/test/java/org/apache/geode/cache30/MultiVMRegionTestCase.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/cache30/MultiVMRegionTestCase.java b/geode-core/src/test/java/org/apache/geode/cache30/MultiVMRegionTestCase.java
index c51c9cc..f57bc96 100644
--- a/geode-core/src/test/java/org/apache/geode/cache30/MultiVMRegionTestCase.java
+++ b/geode-core/src/test/java/org/apache/geode/cache30/MultiVMRegionTestCase.java
@@ -6345,7 +6345,7 @@ public abstract class MultiVMRegionTestCase extends RegionTestCase {
         TXStateProxy tx = ((TXManagerImpl) txMgr).internalSuspend();
         assertTrue(rgn.containsKey("key"));
         assertEquals("LV 1", rgn.getEntry("key").getValue());
-        ((TXManagerImpl) txMgr).resume(tx);
+        ((TXManagerImpl) txMgr).internalResume(tx);
       }
       // make sure transactional view is still correct
       assertEquals("txValue", rgn.getEntry("key").getValue());
@@ -6394,7 +6394,7 @@ public abstract class MultiVMRegionTestCase extends RegionTestCase {
         // do a get outside of the transaction to force a net load
         Object v3 = rgn.get("key3");
         assertEquals("LV 3", v3);
-        ((TXManagerImpl) txMgr).resume(tx);
+        ((TXManagerImpl) txMgr).internalResume(tx);
       }
       // make sure transactional view is still correct
       assertEquals("txValue3", rgn.getEntry("key3").getValue());
@@ -6452,7 +6452,7 @@ public abstract class MultiVMRegionTestCase extends RegionTestCase {
         // do a get outside of the transaction to force a netsearch
         assertEquals("txValue", rgn.get("key")); // does a netsearch
         assertEquals("txValue", rgn.getEntry("key").getValue());
-        ((TXManagerImpl) txMgr).resume(tx);
+        ((TXManagerImpl) txMgr).internalResume(tx);
       }
       // make sure transactional view is still correct
       assertEquals("new txValue", rgn.getEntry("key").getValue());

http://git-wip-us.apache.org/repos/asf/geode/blob/0aebf39b/geode-core/src/test/java/org/apache/geode/internal/cache/ClientServerTransactionDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/ClientServerTransactionDUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/ClientServerTransactionDUnitTest.java
index 3771fa8..95c09b6 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/ClientServerTransactionDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/ClientServerTransactionDUnitTest.java
@@ -738,7 +738,7 @@ public class ClientServerTransactionDUnitTest extends RemoteTransactionDUnitTest
             assertNull(pr.get(new CustId(i)));
           }
           org.apache.geode.test.dunit.LogWriterUtils.getLogWriter().info("resuming transaction");
-          mgr.resume(tx);
+          mgr.internalResume(tx);
         }
         assertEquals("r sized should be " + MAX_ENTRIES + " but it is:" + r.size(), MAX_ENTRIES,
             r.size());
@@ -839,7 +839,7 @@ public class ClientServerTransactionDUnitTest extends RemoteTransactionDUnitTest
         TXManagerImpl mgr = getGemfireCache().getTxManager();
         TXStateProxy tx = mgr.internalSuspend();
         assertNotNull(tx);
-        mgr.resume(tx);
+        mgr.internalResume(tx);
         if (commit) {
           mgr.commit();
         } else {
@@ -1622,7 +1622,7 @@ public class ClientServerTransactionDUnitTest extends RemoteTransactionDUnitTest
         TXStateProxy txState = mgr.internalSuspend();
         assertNull(pr.get(custId));
         assertNull(r.get(10));
-        mgr.resume(txState);
+        mgr.internalResume(txState);
         mgr.commit();
         return null;
       }
@@ -2373,7 +2373,7 @@ public class ClientServerTransactionDUnitTest extends RemoteTransactionDUnitTest
         assertEquals(new Customer("oldname1", "oldaddress1"), pr.get(new CustId(1)));
         assertNull(pr.get(new CustId(10)));
         assertNull(r.get(new CustId(10)));
-        mgr.resume(tx);
+        mgr.internalResume(tx);
         mgr.commit();
         assertEquals(new Customer("name0", "address0"), pr.get(new CustId(0)));
         assertEquals(new Customer("name1", "address1"), pr.get(new CustId(1)));
@@ -2440,7 +2440,7 @@ public class ClientServerTransactionDUnitTest extends RemoteTransactionDUnitTest
         final CountDownLatch latch = new CountDownLatch(1);
         Thread t = new Thread(new Runnable() {
           public void run() {
-            mgr.resume(txState);
+            mgr.internalResume(txState);
             mgr.commit();
             latch.countDown();
           }
@@ -2927,7 +2927,7 @@ public class ClientServerTransactionDUnitTest extends RemoteTransactionDUnitTest
                 }
               }
             });
-            mgr.resume(tx);
+            mgr.internalResume(tx);
             mgr.commit();
           }
         });

http://git-wip-us.apache.org/repos/asf/geode/blob/0aebf39b/geode-core/src/test/java/org/apache/geode/internal/cache/GemFireCacheImplTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/GemFireCacheImplTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/GemFireCacheImplTest.java
index 288a3e1..85bc6a9 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/GemFireCacheImplTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/GemFireCacheImplTest.java
@@ -27,6 +27,7 @@ import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
 import org.apache.geode.distributed.internal.InternalDistributedSystem;
+import org.apache.geode.internal.SystemTimer;
 import org.apache.geode.pdx.internal.TypeRegistry;
 import org.apache.geode.test.fake.Fakes;
 import org.apache.geode.test.junit.categories.UnitTest;
@@ -35,6 +36,28 @@ import org.apache.geode.test.junit.categories.UnitTest;
 public class GemFireCacheImplTest {
 
   @Test
+  public void checkPurgeCCPTimer() {
+    InternalDistributedSystem ds = Fakes.distributedSystem();
+    CacheConfig cc = new CacheConfig();
+    TypeRegistry typeRegistry = mock(TypeRegistry.class);
+    SystemTimer ccpTimer = mock(SystemTimer.class);
+    GemFireCacheImpl gfc = GemFireCacheImpl.createWithAsyncEventListeners(ds, cc, typeRegistry);
+    gfc.setCCPTimer(ccpTimer);
+    for (int i = 1; i < GemFireCacheImpl.PURGE_INTERVAL; i++) {
+      gfc.purgeCCPTimer();
+      verify(ccpTimer, times(0)).timerPurge();
+    }
+    gfc.purgeCCPTimer();
+    verify(ccpTimer, times(1)).timerPurge();
+    for (int i = 1; i < GemFireCacheImpl.PURGE_INTERVAL; i++) {
+      gfc.purgeCCPTimer();
+      verify(ccpTimer, times(1)).timerPurge();
+    }
+    gfc.purgeCCPTimer();
+    verify(ccpTimer, times(2)).timerPurge();
+  }
+
+  @Test
   public void checkThatAsyncEventListenersUseAllThreadsInPool() {
     InternalDistributedSystem ds = Fakes.distributedSystem();
     CacheConfig cc = new CacheConfig();

http://git-wip-us.apache.org/repos/asf/geode/blob/0aebf39b/geode-core/src/test/java/org/apache/geode/internal/cache/RemoteTransactionDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/RemoteTransactionDUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/RemoteTransactionDUnitTest.java
index 751bcd1..bc8bfb6 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/RemoteTransactionDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/RemoteTransactionDUnitTest.java
@@ -555,7 +555,7 @@ public class RemoteTransactionDUnitTest extends JUnit4CacheTestCase {
         TXManagerImpl mgr = getGemfireCache().getTxManager();
         TXStateProxy tx = mgr.internalSuspend();
         assertNotNull(tx);
-        mgr.resume(tx);
+        mgr.internalResume(tx);
         if (commit) {
           mgr.commit();
         } else {
@@ -662,7 +662,7 @@ public class RemoteTransactionDUnitTest extends JUnit4CacheTestCase {
         assertTrue(cust.containsKey(new CustId(8)));
         TXStateProxy tx = ((TXManagerImpl) mgr).internalSuspend();
         assertFalse(cust.containsKey(new CustId(8)));
-        ((TXManagerImpl) mgr).resume(tx);
+        ((TXManagerImpl) mgr).internalResume(tx);
         mgr.commit();
         Customer s2 = (Customer) cust.get(new CustId(8));
         Customer ex = new Customer("sup dawg", "add");
@@ -935,7 +935,7 @@ public class RemoteTransactionDUnitTest extends JUnit4CacheTestCase {
         TXStateProxy tx = mgr.internalSuspend();
         assertNull(cust.get(newCustId));
         assertNull(rr.get(newCustId));
-        mgr.resume(tx);
+        mgr.internalResume(tx);
         cust.put(oldCustId, new Customer("foo", "bar"));
         rr.put(oldCustId, new Customer("foo", "bar"));
         return mgr.getTransactionId();
@@ -980,7 +980,7 @@ public class RemoteTransactionDUnitTest extends JUnit4CacheTestCase {
         cust.putIfAbsent(conflictCust, new Customer("name11", "address11"));
         TXStateProxy tx = mgr.internalSuspend();
         cust.put(conflictCust, new Customer("foo", "bar"));
-        mgr.resume(tx);
+        mgr.internalResume(tx);
         try {
           mgr.commit();
           fail("expected exception not thrown");
@@ -1020,7 +1020,7 @@ public class RemoteTransactionDUnitTest extends JUnit4CacheTestCase {
         TXStateProxy tx = mgr.internalSuspend();
         assertNotNull(cust.get(custId));
         assertNotNull(ref.get(custId));
-        mgr.resume(tx);
+        mgr.internalResume(tx);
         return mgr.getTransactionId();
       }
     });
@@ -1060,7 +1060,7 @@ public class RemoteTransactionDUnitTest extends JUnit4CacheTestCase {
         assertTrue(cust.remove(conflictCust, customer));
         TXStateProxy tx = mgr.internalSuspend();
         cust.put(conflictCust, new Customer("foo", "bar"));
-        mgr.resume(tx);
+        mgr.internalResume(tx);
         try {
           mgr.commit();
           fail("expected exception not thrown");
@@ -1096,7 +1096,7 @@ public class RemoteTransactionDUnitTest extends JUnit4CacheTestCase {
         TXStateProxy tx = mgr.internalSuspend();
         assertNotNull(cust.get(custId1));
         assertNotNull(ref.get(custId2));
-        mgr.resume(tx);
+        mgr.internalResume(tx);
         return mgr.getTransactionId();
       }
     });
@@ -1141,7 +1141,7 @@ public class RemoteTransactionDUnitTest extends JUnit4CacheTestCase {
         cust.put(custId20, new Customer("foo", "bar"));
         assertNotNull(cust.get(custId20));
         cust.put(custId4, new Customer("foo", "bar"));
-        mgr.resume(tx);
+        mgr.internalResume(tx);
         try {
           mgr.commit();
           fail("expected exception not thrown");
@@ -1158,7 +1158,7 @@ public class RemoteTransactionDUnitTest extends JUnit4CacheTestCase {
         cust.removeAll(Arrays.asList(custId2, custId3));
         tx = mgr.internalSuspend();
         cust.put(custId2, new Customer("foo", "bar"));
-        mgr.resume(tx);
+        mgr.internalResume(tx);
         mgr.commit();
         assertNotNull(cust.get(custId2));
         assertNull(cust.get(custId3));
@@ -1286,7 +1286,7 @@ public class RemoteTransactionDUnitTest extends JUnit4CacheTestCase {
         TXStateProxy tx = mgr.internalSuspend();
         assertEquals(cust.get(custId), customer);
         assertEquals(ref.get(custId), customer);
-        mgr.resume(tx);
+        mgr.internalResume(tx);
         return mgr.getTransactionId();
       }
     });
@@ -1326,7 +1326,7 @@ public class RemoteTransactionDUnitTest extends JUnit4CacheTestCase {
         assertTrue(cust.replace(conflictCust, customer, new Customer("conflict", "conflict")));
         TXStateProxy tx = mgr.internalSuspend();
         cust.put(conflictCust, new Customer("foo", "bar"));
-        mgr.resume(tx);
+        mgr.internalResume(tx);
         try {
           mgr.commit();
           fail("expected exception not thrown");
@@ -2209,7 +2209,7 @@ public class RemoteTransactionDUnitTest extends JUnit4CacheTestCase {
         assertEquals(getCustIdSet(5), rr.keySet());
         assertEquals(5, rr.keySet().size());
         assertNull(rr.get(custId));
-        mgr.resume(tx);
+        mgr.internalResume(tx);
         mgr.commit();
         return null;
       }
@@ -2259,7 +2259,7 @@ public class RemoteTransactionDUnitTest extends JUnit4CacheTestCase {
         assertEquals(getCustomerSet(5), rr.values());
         assertEquals(5, rr.values().size());
         assertNull(rr.get(custId));
-        mgr.resume(tx);
+        mgr.internalResume(tx);
         mgr.commit();
         return null;
       }
@@ -2309,7 +2309,7 @@ public class RemoteTransactionDUnitTest extends JUnit4CacheTestCase {
         // assertIndexDetailsEquals(getCustIdSet(5), rr.entrySet());
         assertEquals(5, rr.entrySet().size());
         assertNull(rr.get(custId));
-        mgr.resume(tx);
+        mgr.internalResume(tx);
         mgr.commit();
         return null;
       }
@@ -2525,7 +2525,7 @@ public class RemoteTransactionDUnitTest extends JUnit4CacheTestCase {
         TXStateProxy tx = mgr.internalSuspend();
         GemFireCacheImpl.getInstance().getLogger().warning("TX SUSPENDO:" + tx);
         assertNull(custRegion.get(expectedCustId));
-        mgr.resume(tx);
+        mgr.internalResume(tx);
         return null;
       }
     });
@@ -2570,7 +2570,7 @@ public class RemoteTransactionDUnitTest extends JUnit4CacheTestCase {
         }
         TXStateProxy tx = mgr.internalSuspend();
         custRegion.put(expectedCustId, new Customer("Cust6", "updated6"));
-        mgr.resume(tx);
+        mgr.internalResume(tx);
         try {
           mgr.commit();
           fail("expected commit conflict not thrown");
@@ -2719,7 +2719,7 @@ public class RemoteTransactionDUnitTest extends JUnit4CacheTestCase {
         getGemfireCache().getLogger().fine("SWAP:callingget");
         assertNull("expected null but was:" + custRegion.get(expectedCustId),
             custRegion.get(expectedCustId));
-        mgr.resume(tx);
+        mgr.internalResume(tx);
         mgr.commit();
         assertEquals(expectedCustomer, custRegion.get(expectedCustId));
         return null;
@@ -2746,7 +2746,7 @@ public class RemoteTransactionDUnitTest extends JUnit4CacheTestCase {
         }).getResult();
         TXStateProxy tx = mgr.internalSuspend();
         assertEquals(custRegion.get(expectedCustId), expectedCustomer);
-        mgr.resume(tx);
+        mgr.internalResume(tx);
         mgr.commit();
         assertNull(custRegion.get(expectedCustId));
         return null;
@@ -2789,7 +2789,7 @@ public class RemoteTransactionDUnitTest extends JUnit4CacheTestCase {
         assertEquals(expectedCustomer, custRegion.get(expectedCustId));
         TXStateProxy tx = mgr.internalSuspend();
         assertNull(custRegion.get(expectedCustId));
-        mgr.resume(tx);
+        mgr.internalResume(tx);
         return null;
       }
     });
@@ -2841,7 +2841,7 @@ public class RemoteTransactionDUnitTest extends JUnit4CacheTestCase {
         assertEquals(expectedCustomer, pr.get(expectedCustId));
         TXStateProxy tx = mgr.internalSuspend();
         assertNull(pr.get(expectedCustId));
-        mgr.resume(tx);
+        mgr.internalResume(tx);
         return null;
       }
     });
@@ -2880,7 +2880,7 @@ public class RemoteTransactionDUnitTest extends JUnit4CacheTestCase {
         assertEquals(expectedCustomer, pr.get(expectedCustId));
         TXStateProxy tx = mgr.internalSuspend();
         assertNull(pr.get(expectedCustId));
-        mgr.resume(tx);
+        mgr.internalResume(tx);
         return null;
       }
     };
@@ -3094,7 +3094,7 @@ public class RemoteTransactionDUnitTest extends JUnit4CacheTestCase {
         TXManagerImpl mgr = getGemfireCache().getTxManager();
         TXStateProxy tx = mgr.internalSuspend();
         assertNotNull(tx);
-        mgr.resume(tx);
+        mgr.internalResume(tx);
         mgr.commit();
         return null;
       }
@@ -3107,7 +3107,7 @@ public class RemoteTransactionDUnitTest extends JUnit4CacheTestCase {
         TXManagerImpl mgr = getGemfireCache().getTxManager();
         TXStateProxy tx = mgr.internalSuspend();
         assertNotNull(tx);
-        mgr.resume(tx);
+        mgr.internalResume(tx);
         mgr.commit();
         return null;
       }
@@ -3121,7 +3121,7 @@ public class RemoteTransactionDUnitTest extends JUnit4CacheTestCase {
         TXManagerImpl mgr = getGemfireCache().getTxManager();
         TXStateProxy tx = mgr.internalSuspend();
         assertNotNull(tx);
-        mgr.resume(tx);
+        mgr.internalResume(tx);
         mgr.commit();
         return null;
       }
@@ -3165,7 +3165,7 @@ public class RemoteTransactionDUnitTest extends JUnit4CacheTestCase {
         TXManagerImpl mgr = getGemfireCache().getTxManager();
         TXStateProxy tx = mgr.internalSuspend();
         assertNotNull(tx);
-        mgr.resume(tx);
+        mgr.internalResume(tx);
         mgr.commit();
         return null;
       }

http://git-wip-us.apache.org/repos/asf/geode/blob/0aebf39b/geode-core/src/test/java/org/apache/geode/internal/cache/TransactionsWithDeltaDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/TransactionsWithDeltaDUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/TransactionsWithDeltaDUnitTest.java
index c6aa376..c3aa056 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/TransactionsWithDeltaDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/TransactionsWithDeltaDUnitTest.java
@@ -367,7 +367,7 @@ public class TransactionsWithDeltaDUnitTest extends JUnit4CacheTestCase {
         assertEquals("updatedName", pr.get(cust1).getName());
         TXStateProxy tx = mgr.internalSuspend();
         assertEquals("name1", pr.get(cust1).getName());
-        mgr.resume(tx);
+        mgr.internalResume(tx);
         mgr.commit();
         assertTrue(c.isToDeltaCalled());
         assertEquals(c, pr.get(cust1));

http://git-wip-us.apache.org/repos/asf/geode/blob/0aebf39b/geode-core/src/test/java/org/apache/geode/internal/cache/execute/MyTransactionFunction.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/execute/MyTransactionFunction.java b/geode-core/src/test/java/org/apache/geode/internal/cache/execute/MyTransactionFunction.java
index 9a0f3e6..0970836 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/execute/MyTransactionFunction.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/execute/MyTransactionFunction.java
@@ -420,7 +420,7 @@ public class MyTransactionFunction implements Function {
     Assert.assertTrue(lr instanceof BucketRegion);
     TXRegionState txRegion = txState.readRegion(lr);
     TXEntryState txEntry = txRegion.readEntry(txRegion.getEntryKeys().iterator().next());
-    mImp.resume(txState);
+    mImp.internalResume(txState);
     orderPR.put(vOrderId, new Order("foo"));
     txState = mImp.internalSuspend();
     // since both puts were on same key, verify that
@@ -436,7 +436,7 @@ public class MyTransactionFunction implements Function {
     orderPR.put(vOrderId, new Order("foobar"));
     mImp.commit();
     // now begin the first
-    mImp.resume(txState);
+    mImp.internalResume(txState);
     boolean caughtException = false;
     try {
       mImp.commit();
@@ -462,7 +462,7 @@ public class MyTransactionFunction implements Function {
     Assert.assertTrue(cust.equals(custPR.get(custId)));
     TXStateProxy txState = mImp.internalSuspend();
     Assert.assertTrue(custPR.get(custId) == null);
-    mImp.resume(txState);
+    mImp.internalResume(txState);
     mImp.commit();
     // change value
     mImp.begin();
@@ -471,7 +471,7 @@ public class MyTransactionFunction implements Function {
     txState = mImp.internalSuspend();
     Customer newCust = new Customer("fooNew", "barNew");
     custPR.put(custId, newCust);
-    mImp.resume(txState);
+    mImp.internalResume(txState);
     Assert.assertTrue(oldCust.equals(custPR.get(custId)));
     mImp.commit();
   }