You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by kl...@apache.org on 2016/03/17 22:14:01 UTC
[03/26] incubator-geode git commit: GEODE-1099: NPE thrown from
TXManagerImpl.isDistributed()
GEODE-1099: NPE thrown from TXManagerImpl.isDistributed()
Use the existing reference to InternalDistributedSystem so as to prevent a NPE.
If the member is indeed being disconnected, a CacheClosed exception is thrown
while trying to send the message.
Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/5503de07
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/5503de07
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/5503de07
Branch: refs/heads/feature/GEODE-949-2
Commit: 5503de078aa0d45961dc143569651276948ff587
Parents: e22cd95
Author: Swapnil Bawaskar <sb...@pivotal.io>
Authored: Mon Mar 14 17:38:57 2016 -0700
Committer: Swapnil Bawaskar <sb...@pivotal.io>
Committed: Tue Mar 15 12:39:56 2016 -0700
----------------------------------------------------------------------
.../com/gemstone/gemfire/internal/cache/TXManagerImpl.java | 3 ++-
.../gemfire/internal/cache/TXManagerImplJUnitTest.java | 7 +++++++
2 files changed, 9 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/5503de07/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/TXManagerImpl.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/TXManagerImpl.java b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/TXManagerImpl.java
index de49fea..7c270fe 100644
--- a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/TXManagerImpl.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/TXManagerImpl.java
@@ -1502,7 +1502,8 @@ public final class TXManagerImpl implements CacheTransactionManager,
Boolean value = isTXDistributed.get();
// This can be null if not set in setDistributed().
if (value == null) {
- return InternalDistributedSystem.getAnyInstance().getOriginalConfig().getDistributedTransactions();
+ InternalDistributedSystem ids = (InternalDistributedSystem) cache.getDistributedSystem();
+ return ids.getOriginalConfig().getDistributedTransactions();
} else {
return value.booleanValue();
}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/5503de07/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/TXManagerImplJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/TXManagerImplJUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/TXManagerImplJUnitTest.java
index a92d4dc..0467f4f 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/TXManagerImplJUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/TXManagerImplJUnitTest.java
@@ -331,4 +331,11 @@ public class TXManagerImplJUnitTest {
assertNull(region.get("key"));
System.setProperty("gemfire.suspendedTxTimeout", "");
}
+
+ @Test
+ public void testIsDistributedDoesNotThrowNPE() {
+ TXManagerImpl txMgr = (TXManagerImpl) cache.getCacheTransactionManager();
+ cache.getDistributedSystem().disconnect();
+ assertFalse(txMgr.isDistributed());
+ }
}