#ignite-sprint-4: fix IgniteCacheQueryMultiThreadedSelfTest.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/fc8a98e6 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/fc8a98e6 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/fc8a98e6 Branch: refs/heads/ignite-646 Commit: fc8a98e6d81589d2641970dfec0a0609199c615b Parents: bc025d9 Author: ivasilinets <ivasilin...@gridgain.com> Authored: Tue Apr 21 13:43:00 2015 +0300 Committer: ivasilinets <ivasilin...@gridgain.com> Committed: Tue Apr 21 13:43:00 2015 +0300 ---------------------------------------------------------------------- .../processors/cache/GridCacheEvictionManager.java | 11 ++++++++++- .../cache/IgniteCacheQueryMultiThreadedSelfTest.java | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/fc8a98e6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEvictionManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEvictionManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEvictionManager.java index b0c9243..9135c16 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEvictionManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEvictionManager.java @@ -915,6 +915,8 @@ public class GridCacheEvictionManager extends GridCacheManagerAdapter { List<GridCacheEntryEx> locked = new ArrayList<>(keys.size()); + Set<GridCacheEntryEx> notRemove = null; + Collection<GridCacheBatchSwapEntry> swapped = new ArrayList<>(keys.size()); boolean recordable = cctx.events().isRecordable(EVT_CACHE_ENTRY_EVICTED); @@ -944,6 +946,13 @@ public class GridCacheEvictionManager extends GridCacheManagerAdapter { locked.add(entry); + if (entry.obsolete()) { + if (notRemove == null) + notRemove = new HashSet<>(); + + notRemove.add(entry); + } + if (obsoleteVer == null) obsoleteVer = cctx.versions().next(); @@ -971,7 +980,7 @@ public class GridCacheEvictionManager extends GridCacheManagerAdapter { // Remove entries and fire events outside the locks. for (GridCacheEntryEx entry : locked) { - if (entry.obsolete()) { + if (entry.obsolete() && (notRemove == null || !notRemove.contains(entry))) { entry.onMarkedObsolete(); cache.removeEntry(entry); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/fc8a98e6/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheQueryMultiThreadedSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheQueryMultiThreadedSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheQueryMultiThreadedSelfTest.java index 51fc92d..66e2470 100644 --- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheQueryMultiThreadedSelfTest.java +++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheQueryMultiThreadedSelfTest.java @@ -193,6 +193,7 @@ public class IgniteCacheQueryMultiThreadedSelfTest extends GridCommonAbstractTes assertEquals("Swap keys: " + c.size(CachePeekMode.SWAP), 0, c.size(CachePeekMode.SWAP)); assertEquals(0, c.size(CachePeekMode.OFFHEAP)); + assertEquals(0, c.size(CachePeekMode.PRIMARY)); assertEquals(0, c.size()); } }