ignite-5293
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/51086899 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/51086899 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/51086899 Branch: refs/heads/ignite-5293 Commit: 51086899ca176820867fd6c996c09d5a3053c881 Parents: 17b29c7 Author: sboikov <[email protected]> Authored: Tue Jun 6 11:02:51 2017 +0300 Committer: sboikov <[email protected]> Committed: Tue Jun 6 11:02:51 2017 +0300 ---------------------------------------------------------------------- .../cache/distributed/dht/GridDhtLockFuture.java | 11 +++-------- .../cache/distributed/dht/GridDhtTxPrepareFuture.java | 11 ++++++++--- 2 files changed, 11 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/51086899/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java index 8bb0def..668d78d 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java @@ -80,9 +80,6 @@ public final class GridDhtLockFuture extends GridCacheFutureAdapter<Boolean> /** Logger reference. */ private static final AtomicReference<IgniteLogger> logRef = new AtomicReference<>(); - /** */ - private static final List<MiniFuture> CLEARED = Collections.emptyList(); - /** Logger. */ private static IgniteLogger log; @@ -483,7 +480,7 @@ public final class GridDhtLockFuture extends GridCacheFutureAdapter<Boolean> MiniFuture miniFut0 = null; synchronized (this) { - if (miniFuts == null) + if (miniFuts == null || timedOut) return false; for (int i = 0; i < miniFuts.size(); i++) { @@ -540,7 +537,7 @@ public final class GridDhtLockFuture extends GridCacheFutureAdapter<Boolean> @SuppressWarnings("ForLoopReplaceableByForEach") private MiniFuture miniFuture(int miniId) { synchronized (this) { - if (miniFuts != null) { + if (miniFuts != null && !timedOut) { MiniFuture mini = miniFuts.get(miniId); if (!mini.isDone()) @@ -983,7 +980,7 @@ public final class GridDhtLockFuture extends GridCacheFutureAdapter<Boolean> * @return {@code False} if future is already completed on timeout. */ private synchronized boolean add(MiniFuture fut) { - if (miniFuts == CLEARED) + if (timedOut) return false; if (miniFuts == null) @@ -1139,8 +1136,6 @@ public final class GridDhtLockFuture extends GridCacheFutureAdapter<Boolean> // Stop locks and responses processing. pendingLocks.clear(); - - miniFuts = CLEARED; } boolean releaseLocks = !(inTx() && cctx.tm().deadlockDetectionEnabled()); http://git-wip-us.apache.org/repos/asf/ignite/blob/51086899/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java index 474219d..1f993dd 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java @@ -351,7 +351,7 @@ public final class GridDhtTxPrepareFuture extends GridCacheFutureAdapter<GridNea MiniFuture miniFut0 = null; synchronized (this) { - if (miniFuts == null) + if (miniFuts == null || miniFuts == CLEARED) return false; for (int i = 0; i < miniFuts.size(); i++) { @@ -601,8 +601,13 @@ public final class GridDhtTxPrepareFuture extends GridCacheFutureAdapter<GridNea */ private MiniFuture miniFuture(int miniId) { synchronized (this) { - if (miniFuts != null && !miniFuts.get(miniId).isDone()) - return miniFuts.get(miniId); + if (miniFuts == null || miniFuts == CLEARED) + return null; + + MiniFuture fut = miniFuts.get(miniId); + + if (!fut.isDone()) + return fut; } return null;
