Repository: incubator-ignite Updated Branches: refs/heads/ignite-1124 92c66d00b -> 8aa4f7b5b
# ignite-1124 Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/8aa4f7b5 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/8aa4f7b5 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/8aa4f7b5 Branch: refs/heads/ignite-1124 Commit: 8aa4f7b5b852d0df5945c1180557e5e9361344ee Parents: 92c66d0 Author: sboikov <sboi...@gridgain.com> Authored: Thu Jul 16 14:48:16 2015 +0300 Committer: sboikov <sboi...@gridgain.com> Committed: Thu Jul 16 14:48:16 2015 +0300 ---------------------------------------------------------------------- .../processors/cache/GridCacheContext.java | 17 +++++++++++++++-- .../distributed/dht/atomic/GridDhtAtomicCache.java | 4 ++-- 2 files changed, 17 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8aa4f7b5/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java ---------------------------------------------------------------------- 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 d13845a..5f17746 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 @@ -47,7 +47,6 @@ import org.apache.ignite.internal.processors.offheap.*; import org.apache.ignite.internal.processors.plugin.*; import org.apache.ignite.internal.processors.timeout.*; import org.apache.ignite.internal.util.*; -import org.apache.ignite.internal.util.future.*; import org.apache.ignite.internal.util.lang.*; import org.apache.ignite.internal.util.offheap.unsafe.*; import org.apache.ignite.internal.util.tostring.*; @@ -525,7 +524,21 @@ public class GridCacheContext<K, V> implements Externalizable { * @return {@code True} if entries should not be deleted from cache immediately. */ public boolean deferredDelete() { - return isDht() || isDhtAtomic() || isColocated() || (isNear() && atomic()); + GridCacheAdapter<K, V> cache = this.cache; + + if (cache == null) + throw new IllegalStateException("Cache stopped: " + cacheName); + + return deferredDelete(cache); + } + + /** + * @param cache Cache. + * @return {@code True} if entries should not be deleted from cache immediately. + */ + public boolean deferredDelete(GridCacheAdapter<?, ?> cache) { + return cache.isDht() || cache.isDhtAtomic() || cache.isColocated() || + (cache.isNear() && cache.configuration().getAtomicityMode() == ATOMIC); } /** http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8aa4f7b5/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java index 96e6edc..0a21979 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java @@ -1159,7 +1159,7 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> { // Enqueue if necessary after locks release. if (deleted != null) { assert !deleted.isEmpty(); - assert ctx.deferredDelete(); + assert ctx.deferredDelete(this) : this; for (IgniteBiTuple<GridDhtCacheEntry, GridCacheVersion> e : deleted) ctx.onDeferredDelete(e.get1(), e.get2()); @@ -2158,7 +2158,7 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> { */ private void unlockEntries(Collection<GridDhtCacheEntry> locked, AffinityTopologyVersion topVer) { // Process deleted entries before locks release. - assert ctx.deferredDelete() : this; + assert ctx.deferredDelete(this) : this; // Entries to skip eviction manager notification for. // Enqueue entries while holding locks.