Reworked "failedKey" - now it is a flag.

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

Branch: refs/heads/ignite-2523-1
Commit: 4372eb51f83a2b72ae10e72db7710dba3d13d8b2
Parents: f64cdcc
Author: vozerov-gridgain <[email protected]>
Authored: Tue Apr 26 16:35:50 2016 +0300
Committer: vozerov-gridgain <[email protected]>
Committed: Tue Apr 26 16:35:50 2016 +0300

----------------------------------------------------------------------
 .../dht/atomic/GridDhtAtomicCache.java          |  2 +-
 .../GridNearAtomicAbstractUpdateResponse.java   |  3 ++-
 .../GridNearAtomicSingleUpdateFuture.java       |  3 ++-
 .../GridNearAtomicSingleUpdateResponse.java     | 21 ++++++++++----------
 .../dht/atomic/GridNearAtomicUpdateFuture.java  |  3 ++-
 .../atomic/GridNearAtomicUpdateResponse.java    |  2 +-
 .../distributed/near/GridNearAtomicCache.java   |  2 +-
 7 files changed, 19 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/4372eb51/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 4018663..4c5d46c 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
@@ -218,7 +218,7 @@ public class GridDhtAtomicCache<K, V> extends 
GridDhtCacheAdapter<K, V> {
                         Collection<KeyCacheObject> failedKeys = new 
ArrayList<>(res.failedKeysCount());
 
                         for (int i = 0; i < res.failedKeysCount(); i++)
-                            failedKeys.add(res.failedKey(i));
+                            failedKeys.add(res.failedKey(req, i));
 
                         U.error(log, "Failed to process write update request 
in FULL_ASYNC mode for keys: " +
                             failedKeys, res.error());

http://git-wip-us.apache.org/repos/asf/ignite/blob/4372eb51/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateResponse.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateResponse.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateResponse.java
index 56bdd66..4fb6b32 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateResponse.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateResponse.java
@@ -77,10 +77,11 @@ public abstract class GridNearAtomicAbstractUpdateResponse 
extends GridCacheMess
     public abstract int failedKeysCount();
 
     /**
+     * @param req Request.
      * @param idx Index.
      * @return Failed key.
      */
-    public abstract KeyCacheObject failedKey(int idx);
+    public abstract KeyCacheObject 
failedKey(GridNearAtomicAbstractUpdateRequest req, int idx);
 
     /**
      * @return Return value.

http://git-wip-us.apache.org/repos/asf/ignite/blob/4372eb51/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
index a6cff49..9448d74 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
@@ -248,7 +248,8 @@ public class GridNearAtomicSingleUpdateFuture extends 
GridNearAtomicAbstractUpda
                     Collection<Object> keys = new 
ArrayList<>(res.failedKeysCount());
 
                     for (int i = 0; i < res.failedKeysCount(); i++)
-                        
keys.add(cctx.cacheObjectContext().unwrapBinaryIfNeeded(res.failedKey(i), 
keepBinary, false));
+                        
keys.add(cctx.cacheObjectContext().unwrapBinaryIfNeeded(
+                            res.failedKey(req, i), keepBinary, false));
 
                     err.add(keys, res.error(), req.topologyVersion());
                 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/4372eb51/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateResponse.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateResponse.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateResponse.java
index fcb7afc..41fa699 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateResponse.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateResponse.java
@@ -64,7 +64,7 @@ public class GridNearAtomicSingleUpdateResponse extends 
GridNearAtomicAbstractUp
 
     /** Failed keys. */
     @GridToStringInclude
-    private volatile KeyCacheObject failedKey;
+    private volatile boolean failedKey;
 
     /** Keys that should be remapped. */
     @GridToStringInclude
@@ -138,14 +138,15 @@ public class GridNearAtomicSingleUpdateResponse extends 
GridNearAtomicAbstractUp
 
     /** {@inheritDoc} */
     @Override public int failedKeysCount() {
-        return failedKey == null ? 0 : 1;
+        return failedKey ? 1 : 0;
     }
 
     /** {@inheritDoc} */
-    @Override public KeyCacheObject failedKey(int idx) {
+    @Override public KeyCacheObject 
failedKey(GridNearAtomicAbstractUpdateRequest req, int idx) {
         assert idx == 0;
+        assert failedKey;
 
-        return failedKey;
+        return req.key(0);
     }
 
     /** {@inheritDoc} */
@@ -256,7 +257,7 @@ public class GridNearAtomicSingleUpdateResponse extends 
GridNearAtomicAbstractUp
 
     /** {@inheritDoc} */
     @Override public synchronized void addFailedKey(KeyCacheObject key, 
Throwable e) {
-        failedKey = key;
+        failedKey = true;
 
         setFailedKeysError(e);
     }
@@ -266,7 +267,7 @@ public class GridNearAtomicSingleUpdateResponse extends 
GridNearAtomicAbstractUp
         if (keys != null) {
             assert keys.size() == 1;
 
-            failedKey = keys.iterator().next();
+            failedKey = true;
         }
 
         setFailedKeysError(e);
@@ -276,7 +277,7 @@ public class GridNearAtomicSingleUpdateResponse extends 
GridNearAtomicAbstractUp
     @Override public synchronized void 
addFailedKeys(GridNearAtomicAbstractUpdateRequest req, Throwable e) {
         assert req instanceof GridNearAtomicSingleUpdateRequest;
 
-        failedKey = req.key(0);
+        failedKey = true;
 
         setFailedKeysError(e);
     }
@@ -308,7 +309,6 @@ public class GridNearAtomicSingleUpdateResponse extends 
GridNearAtomicAbstractUp
 
         GridCacheContext cctx = ctx.cacheContext(cacheId);
 
-        prepareMarshalCacheObject(failedKey, cctx);
         prepareMarshalCacheObject(remapKey, cctx);
         prepareMarshalCacheObject(nearVal, cctx);
 
@@ -325,7 +325,6 @@ public class GridNearAtomicSingleUpdateResponse extends 
GridNearAtomicAbstractUp
 
         GridCacheContext cctx = ctx.cacheContext(cacheId);
 
-        finishUnmarshalCacheObject(failedKey, cctx, ldr);
         finishUnmarshalCacheObject(remapKey, cctx, ldr);
         finishUnmarshalCacheObject(nearVal, cctx, ldr);
 
@@ -357,7 +356,7 @@ public class GridNearAtomicSingleUpdateResponse extends 
GridNearAtomicAbstractUp
                 writer.incrementState();
 
             case 4:
-                if (!writer.writeMessage("failedKey", failedKey))
+                if (!writer.writeBoolean("failedKey", failedKey))
                     return false;
 
                 writer.incrementState();
@@ -441,7 +440,7 @@ public class GridNearAtomicSingleUpdateResponse extends 
GridNearAtomicAbstractUp
                 reader.incrementState();
 
             case 4:
-                failedKey = reader.readMessage("failedKey");
+                failedKey = reader.readBoolean("failedKey");
 
                 if (!reader.isLastRead())
                     return false;

http://git-wip-us.apache.org/repos/asf/ignite/blob/4372eb51/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
index 07071f2..a858bca 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
@@ -319,7 +319,8 @@ public class GridNearAtomicUpdateFuture extends 
GridNearAtomicAbstractUpdateFutu
                     Collection<Object> keys = new 
ArrayList<>(res.failedKeysCount());
 
                     for (int i = 0; i < res.failedKeysCount(); i++)
-                        
keys.add(cctx.cacheObjectContext().unwrapBinaryIfNeeded(res.failedKey(i), 
keepBinary, false));
+                        
keys.add(cctx.cacheObjectContext().unwrapBinaryIfNeeded(
+                            res.failedKey(req, i), keepBinary, false));
 
                     err.add(keys, res.error(), req.topologyVersion());
                 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/4372eb51/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java
index 34d3fe3..c14e376 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java
@@ -151,7 +151,7 @@ public class GridNearAtomicUpdateResponse extends 
GridNearAtomicAbstractUpdateRe
     }
 
     /** {@inheritDoc} */
-    @Override public KeyCacheObject failedKey(int idx) {
+    @Override public KeyCacheObject 
failedKey(GridNearAtomicAbstractUpdateRequest req, int idx) {
         return failedKeys.get(idx);
     }
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/4372eb51/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearAtomicCache.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearAtomicCache.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearAtomicCache.java
index 995b948..97be2eb 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearAtomicCache.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearAtomicCache.java
@@ -156,7 +156,7 @@ public class GridNearAtomicCache<K, V> extends 
GridNearCacheAdapter<K, V> {
             boolean failed = false;
 
             for (int j = 0; j < res.failedKeysCount(); j++) {
-                if (F.eq(res.failedKey(j), key)) {
+                if (F.eq(res.failedKey(req, j), key)) {
                     failed = true;
 
                     break;

Reply via email to