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;
