From e7fb17b51ad434e5568f6379ba809479aafb8669 Mon Sep 17 00:00:00 2001 From: Konstantin Dudkov Date: Mon, 17 Apr 2017 15:33:22 +0300 Subject: [PATCH 1/2] ignite-4982 --- .../internal/processors/cache/GridCacheContext.java | 10 ++++++++++ .../junits/common/GridCommonAbstractTest.java | 7 ++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java index 9e6fc3776bd6b..82dee7fccddf7 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java @@ -432,11 +432,21 @@ public boolean started() { if (startLatch.getCount() != 0) return false; + if (cache() == null) + return false; + GridCachePreloader prldr = preloader(); return prldr == null || prldr.startFuture().isDone(); } + /** + * @return Stopped flag. + */ + public boolean stopped() { + return startLatch.getCount() == 0 && cache() == null; + } + /** * */ diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/common/GridCommonAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/common/GridCommonAbstractTest.java index 81f5caf3884c4..14dca2b76a4d4 100644 --- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/common/GridCommonAbstractTest.java +++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/common/GridCommonAbstractTest.java @@ -46,7 +46,6 @@ import org.apache.ignite.IgniteException; import org.apache.ignite.IgniteMessaging; import org.apache.ignite.Ignition; -import org.apache.ignite.cache.CacheAtomicityMode; import org.apache.ignite.cache.CachePeekMode; import org.apache.ignite.cache.affinity.Affinity; import org.apache.ignite.cache.affinity.AffinityFunction; @@ -60,8 +59,8 @@ import org.apache.ignite.configuration.IgniteConfiguration; import org.apache.ignite.events.Event; import org.apache.ignite.internal.GridKernalContext; -import org.apache.ignite.internal.IgniteInternalFuture; import org.apache.ignite.internal.IgniteEx; +import org.apache.ignite.internal.IgniteInternalFuture; import org.apache.ignite.internal.IgniteKernal; import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion; import org.apache.ignite.internal.processors.cache.GridCacheAdapter; @@ -98,7 +97,6 @@ import org.jetbrains.annotations.Nullable; import static org.apache.ignite.cache.CacheMode.LOCAL; -import static org.apache.ignite.cache.CacheMode.PARTITIONED; import static org.apache.ignite.cache.CacheRebalanceMode.NONE; import static org.apache.ignite.internal.processors.cache.GridCacheUtils.isNearEnabled; import static org.apache.ignite.transactions.TransactionConcurrency.PESSIMISTIC; @@ -583,6 +581,9 @@ protected void awaitPartitionMapExchange( AffinityTopologyVersion readyVer = dht.context().shared().exchange().readyAffinityVersion(); + if (c.context().stopped()) + break; + if (readyVer.topologyVersion() > 0 && c.context().started()) { // Must map on updated version of topology. Collection affNodes = From 3f2da0f1330cd0424a8d16741c64c674fea638bd Mon Sep 17 00:00:00 2001 From: Konstantin Dudkov Date: Mon, 17 Apr 2017 15:33:22 +0300 Subject: [PATCH 2/2] fix npe --- .../internal/processors/cache/GridCacheContext.java | 12 +----------- .../junits/common/GridCommonAbstractTest.java | 7 ++++--- 2 files changed, 5 insertions(+), 14 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java index 82dee7fccddf7..38fbb2ce1eb59 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java @@ -432,21 +432,11 @@ public boolean started() { if (startLatch.getCount() != 0) return false; - if (cache() == null) - return false; - GridCachePreloader prldr = preloader(); return prldr == null || prldr.startFuture().isDone(); } - /** - * @return Stopped flag. - */ - public boolean stopped() { - return startLatch.getCount() == 0 && cache() == null; - } - /** * */ @@ -774,7 +764,7 @@ public void checkSecurity(SecurityPermission op) throws SecurityException { * @return Preloader. */ public GridCachePreloader preloader() { - return cache().preloader(); + return cache() == null ? null : cache().preloader(); } /** diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/common/GridCommonAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/common/GridCommonAbstractTest.java index 14dca2b76a4d4..0aab0a427cce6 100644 --- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/common/GridCommonAbstractTest.java +++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/common/GridCommonAbstractTest.java @@ -581,10 +581,11 @@ protected void awaitPartitionMapExchange( AffinityTopologyVersion readyVer = dht.context().shared().exchange().readyAffinityVersion(); - if (c.context().stopped()) - break; - if (readyVer.topologyVersion() > 0 && c.context().started()) { + // Cache is stopped. + if (c.context().cache() == null) + break; + // Must map on updated version of topology. Collection affNodes = dht.context().affinity().assignment(readyVer).idealAssignment().get(p);