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;

Reply via email to