Repository: ignite
Updated Branches:
  refs/heads/ignite-4932 8e6bdfb25 -> 5e9e146fb


ignite-4932 WIP


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/5e9e146f
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/5e9e146f
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/5e9e146f

Branch: refs/heads/ignite-4932
Commit: 5e9e146fb6469ba115c6bb4f14ce92b09b6ea3bb
Parents: 8e6bdfb
Author: sboikov <[email protected]>
Authored: Fri Apr 14 13:50:09 2017 +0300
Committer: sboikov <[email protected]>
Committed: Fri Apr 14 13:50:09 2017 +0300

----------------------------------------------------------------------
 .../processors/cache/GridCacheSwapManager.java        | 14 ++++++++++++++
 1 file changed, 14 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/5e9e146f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSwapManager.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSwapManager.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSwapManager.java
index 07edaff..67c00dc 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSwapManager.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSwapManager.java
@@ -25,6 +25,7 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.NoSuchElementException;
 import java.util.Set;
@@ -162,6 +163,8 @@ public class GridCacheSwapManager extends 
GridCacheManagerAdapter {
         Collection<IgniteBiTuple<byte[], byte[]>> evicts = offheapEvicts.get();
 
         if (evicts != null) {
+            List<GridCacheEntryEx> entries = null;
+
             GridCacheVersion obsoleteVer = cctx.versions().next();
 
             for (IgniteBiTuple<byte[], byte[]> t : evicts) {
@@ -179,6 +182,12 @@ public class GridCacheSwapManager extends 
GridCacheManagerAdapter {
                         try {
                             if (entry.onOffheapEvict(vb, evictVer, 
obsoleteVer))
                                 cctx.cache().removeEntry(entry);
+                            else {
+                                if (entries == null)
+                                    entries = new ArrayList<>();
+
+                                entries.add(entry);
+                            }
 
                             break;
                         }
@@ -196,6 +205,11 @@ public class GridCacheSwapManager extends 
GridCacheManagerAdapter {
             }
 
             offheapEvicts.set(null);
+
+            if (entries != null) {
+                for (int i = 0; i < entries.size(); i++)
+                    cctx.evicts().touch(entries.get(i), 
AffinityTopologyVersion.NONE);
+            }
         }
     }
 

Reply via email to