You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2017/03/17 15:04:50 UTC
[05/10] ignite git commit: wip
wip
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/855c66b1
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/855c66b1
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/855c66b1
Branch: refs/heads/ignite-4680-sb
Commit: 855c66b11b8eded1f3ff3e4ff1df587c724c5c70
Parents: f33235d
Author: Konstantin Dudkov <kd...@ya.ru>
Authored: Thu Mar 16 13:44:38 2017 +0300
Committer: Konstantin Dudkov <kd...@ya.ru>
Committed: Thu Mar 16 13:44:38 2017 +0300
----------------------------------------------------------------------
.../dht/atomic/GridDhtAtomicCache.java | 6 ++-
.../dht/atomic/NearAtomicResponseHelper.java | 55 +++++++++-----------
2 files changed, 30 insertions(+), 31 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/855c66b1/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 05d85ad..e68d72d 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
@@ -214,8 +214,10 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
@Override public void apply(GridNearAtomicAbstractUpdateRequest req, GridNearAtomicUpdateResponse res) {
if (req.writeSynchronizationMode() != FULL_ASYNC) {
if (req.responseHelper() != null) {
- if (req.responseHelper().addResponse(res))
- sendNearUpdateReply(res.nodeId(), req.responseHelper().response());
+ GridNearAtomicUpdateResponse res0 = req.responseHelper().addResponse(res);
+
+ if (res0 != null)
+ sendNearUpdateReply(res.nodeId(), res0);
}
else
sendNearUpdateReply(res.nodeId(), res);
http://git-wip-us.apache.org/repos/asf/ignite/blob/855c66b1/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/NearAtomicResponseHelper.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/NearAtomicResponseHelper.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/NearAtomicResponseHelper.java
index 9e35e8f..00c9f6c 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/NearAtomicResponseHelper.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/NearAtomicResponseHelper.java
@@ -42,45 +42,42 @@ public class NearAtomicResponseHelper {
* @param res Response.
* @return {@code true} if all responses added.
*/
- public boolean addResponse(GridNearAtomicUpdateResponse res) {
+ public GridNearAtomicUpdateResponse addResponse(GridNearAtomicUpdateResponse res) {
synchronized (this) {
- if (res.stripe() == -1) {
- this.res = res;
- this.res.stripe(-1);
-
- return true;
- }
+ if (res.stripe() == -1)
+ return res;
if (stripes.remove(res.stripe())) {
- if (this.res == null)
- this.res = res;
- else {
- if (res.nearValuesIndexes() != null)
- for (int i = 0; i < res.nearValuesIndexes().size(); i++)
- this.res.addNearValue(
- res.nearValuesIndexes().get(i),
- res.nearValue(i),
- res.nearTtl(i),
- res.nearExpireTime(i)
- );
+ mergeResponse(res);
- if (res.failedKeys() != null)
- this.res.addFailedKeys(res.failedKeys(), null);
-
- if (res.skippedIndexes() != null)
- this.res.skippedIndexes().addAll(res.skippedIndexes());
- }
- return stripes.isEmpty();
+ return stripes.isEmpty() ? this.res : null;
}
- return false;
+ return null;
}
}
/**
- * @return Response.
+ * @param res Response.
*/
- public GridNearAtomicUpdateResponse response() {
- return res;
+ private void mergeResponse(GridNearAtomicUpdateResponse res) {
+ if (this.res == null)
+ this.res = res;
+ else {
+ if (res.nearValuesIndexes() != null)
+ for (int i = 0; i < res.nearValuesIndexes().size(); i++)
+ this.res.addNearValue(
+ res.nearValuesIndexes().get(i),
+ res.nearValue(i),
+ res.nearTtl(i),
+ res.nearExpireTime(i)
+ );
+
+ if (res.failedKeys() != null)
+ this.res.addFailedKeys(res.failedKeys(), null);
+
+ if (res.skippedIndexes() != null)
+ this.res.skippedIndexes().addAll(res.skippedIndexes());
+ }
}
}