ignite-223 review

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

Branch: refs/heads/ignite-281
Commit: c73220712f9f044758b00b39fb57c40a8846b243
Parents: 7e0c9ca
Author: Yakov Zhdanov <yzhda...@gridgain.com>
Authored: Wed Feb 18 18:54:18 2015 +0300
Committer: Yakov Zhdanov <yzhda...@gridgain.com>
Committed: Wed Feb 18 18:54:18 2015 +0300

----------------------------------------------------------------------
 .../processors/cache/GridCacheSwapManager.java  | 43 ++++++++++----------
 1 file changed, 21 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/c7322071/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 940b346..0a7b768 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
@@ -724,7 +724,8 @@ public class GridCacheSwapManager<K, V> extends 
GridCacheManagerAdapter<K, V> {
      * @return Collection of swap entries.
      * @throws IgniteCheckedException If failed,
      */
-    public Collection<GridCacheBatchSwapEntry<K, V>> 
readAndRemove(Collection<? extends K> keys) throws IgniteCheckedException {
+    public Collection<GridCacheBatchSwapEntry<K, V>> 
readAndRemove(Collection<? extends K> keys)
+        throws IgniteCheckedException {
         if (!offheapEnabled && !swapEnabled)
             return Collections.emptyList();
 
@@ -732,13 +733,11 @@ public class GridCacheSwapManager<K, V> extends 
GridCacheManagerAdapter<K, V> {
 
         final GridCacheQueryManager<K, V> qryMgr = cctx.queries();
 
-        Collection<? extends K> unprocessedKeys;
+        Collection<SwapKey> unprocessedKeys = null;
         final Collection<GridCacheBatchSwapEntry<K, V>> res = new 
ArrayList<>(keys.size());
 
         // First try removing from offheap.
         if (offheapEnabled) {
-            Collection<K> unprocessedKeysList = new ArrayList<>(keys.size());
-
             for (K key : keys) {
                 int part = cctx.affinity().partition(key);
 
@@ -778,33 +777,33 @@ public class GridCacheSwapManager<K, V> extends 
GridCacheManagerAdapter<K, V> {
                     }
                 }
 
-                unprocessedKeysList.add(key);
-            }
+                if (swapEnabled) {
+                    if (unprocessedKeys == null)
+                        unprocessedKeys = new ArrayList<>(keys.size());
 
-            unprocessedKeys = unprocessedKeysList;
+                    unprocessedKeys.add(
+                        new SwapKey(key, cctx.affinity().partition(key), 
CU.marshal(cctx.shared(), key)));
+                }
+            }
 
-            if (!swapEnabled || unprocessedKeys.isEmpty())
+            if (unprocessedKeys == null)
                 return res;
         }
-        else
-            unprocessedKeys = keys;
+        else {
+            unprocessedKeys = new ArrayList<>(keys.size());
+
+            for (K key : keys)
+                unprocessedKeys.add(new SwapKey(key, 
cctx.affinity().partition(key), CU.marshal(cctx.shared(), key)));
+        }
+
+        assert swapEnabled;
+        assert unprocessedKeys != null;
 
         // Swap is enabled.
         final GridTuple<IgniteCheckedException> err = F.t1();
 
-        Collection<SwapKey> converted = new 
ArrayList<>(F.viewReadOnly(unprocessedKeys, new C1<K, SwapKey>() {
-            @Override public SwapKey apply(K key) {
-                try {
-                    return new SwapKey(key, cctx.affinity().partition(key), 
CU.marshal(cctx.shared(), key));
-                }
-                catch (IgniteCheckedException e) {
-                    throw new IgniteException(e);
-                }
-            }
-        }));
-
         swapMgr.removeAll(spaceName,
-            converted,
+            unprocessedKeys,
             new IgniteBiInClosure<SwapKey, byte[]>() {
                 @Override public void apply(SwapKey swapKey, byte[] rmv) {
                     if (rmv != null) {

Reply via email to