Merge remote-tracking branch 'remotes/origin/master' into ignite-3478

# Conflicts:
#       
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
#       
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
#       
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/NearTxFinishFuture.java
#       
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteInternalTx.java
#       
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java


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

Branch: refs/heads/ignite-3479
Commit: 0c4325a3e2f49c44971a6dd6b14d73a15f26a84f
Parents: 3ad260d
Author: sboikov <sboi...@gridgain.com>
Authored: Fri Sep 22 14:19:17 2017 +0300
Committer: sboikov <sboi...@gridgain.com>
Committed: Fri Sep 22 14:19:17 2017 +0300

----------------------------------------------------------------------
 .../near/GridNearTxFastFinishFuture.java        |  6 ++----
 .../near/GridNearTxFinishAndAckFuture.java      | 11 +++++++---
 .../near/GridNearTxFinishFuture.java            | 11 ++++------
 .../cache/distributed/near/GridNearTxLocal.java | 22 ++++++++++----------
 .../distributed/near/NearTxFinishFuture.java    |  3 ++-
 5 files changed, 27 insertions(+), 26 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/0c4325a3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFastFinishFuture.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFastFinishFuture.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFastFinishFuture.java
index 7222697..de30090 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFastFinishFuture.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFastFinishFuture.java
@@ -51,10 +51,8 @@ public class GridNearTxFastFinishFuture extends 
GridFutureAdapter<IgniteInternal
         return commit;
     }
 
-    /**
-     *
-     */
-    public void finish() {
+    /** {@inheritDoc} */
+    public void finish(boolean commit, boolean clearThreadMap) {
         try {
             if (commit) {
                 tx.state(PREPARING);

http://git-wip-us.apache.org/repos/asf/ignite/blob/0c4325a3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishAndAckFuture.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishAndAckFuture.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishAndAckFuture.java
index b044e6f..8474ab7 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishAndAckFuture.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishAndAckFuture.java
@@ -40,9 +40,14 @@ public class GridNearTxFinishAndAckFuture extends 
GridFutureAdapter<IgniteIntern
     }
 
     /** {@inheritDoc} */
-    public void finish(boolean commit) {
+    @Override public boolean commit() {
+        return finishFut.commit();
+    }
+
+    /** {@inheritDoc} */
+    public void finish(boolean commit, boolean clearThreadMap) {
         if (commit) {
-            finishFut.finish(true);
+            finishFut.finish(true, clearThreadMap);
 
             finishFut.listen(new IgniteInClosure<GridNearTxFinishFuture>() {
                 @Override public void apply(final GridNearTxFinishFuture fut) {
@@ -87,7 +92,7 @@ public class GridNearTxFinishAndAckFuture extends 
GridFutureAdapter<IgniteIntern
             });
         }
         else {
-            finishFut.finish(false);
+            finishFut.finish(false, clearThreadMap);
 
             finishFut.listen(new IgniteInClosure<IgniteInternalFuture>() {
                 @Override public void apply(IgniteInternalFuture fut) {

http://git-wip-us.apache.org/repos/asf/ignite/blob/0c4325a3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
index 92f6b86..5f18e9b 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
@@ -402,15 +402,12 @@ public final class GridNearTxFinishFuture<K, V> extends 
GridCacheCompoundIdentit
             fut.getClass() == CheckRemoteTxMiniFuture.class;
     }
 
-    /**
-     * Initializes future.
-     *
-     * @param commit Commit flag.
-     * @param clearThreadMap If {@code true} removes {@link GridNearTxLocal} 
from thread map.
-     */
-    @SuppressWarnings("ForLoopReplaceableByForEach")
     /** {@inheritDoc} */
+    @SuppressWarnings("ForLoopReplaceableByForEach")
     public void finish(boolean commit, boolean clearThreadMap) {
+        if (!cctx.mvcc().addFuture(this, futureId()))
+            return;
+
         if (tx.onNeedCheckBackup()) {
             assert tx.onePhaseCommit();
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/0c4325a3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
index 91e1c07..188200e 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
@@ -3199,6 +3199,12 @@ public class GridNearTxLocal extends 
GridDhtTxLocalAdapter implements GridTimeou
         commitNearTxLocalAsync().get();
     }
 
+    private NearTxFinishFuture commitFuture() {
+        GridNearTxFinishFuture fut = new GridNearTxFinishFuture<>(cctx, this, 
true);
+
+        return txState.mvccEnabled(cctx) ? new 
GridNearTxFinishAndAckFuture(fut) : fut;
+    }
+
     /**
      * @return Finish future.
      */
@@ -3217,18 +3223,16 @@ public class GridNearTxLocal extends 
GridDhtTxLocalAdapter implements GridTimeou
             if (!FINISH_FUT_UPD.compareAndSet(this, null, fut0 = new 
GridNearTxFastFinishFuture(this, true)))
                 return chainFinishFuture(finishFut, true);
 
-            fut0.finish();
+            fut0.finish(true, true);
 
             return fut0;
         }
 
-        final GridNearTxFinishFuture fut0;
+        final NearTxFinishFuture fut0;
 
-        if (!FINISH_FUT_UPD.compareAndSet(this, null, fut0 = new 
GridNearTxFinishFuture<>(cctx, this, true)))
+        if (!FINISH_FUT_UPD.compareAndSet(this, null, fut0 = commitFuture()))
             return chainFinishFuture(finishFut, true);
 
-        cctx.mvcc().addFuture(fut0, fut0.futureId());
-
         final IgniteInternalFuture<?> prepareFut = prepareNearTxLocal();
 
         prepareFut.listen(new CI1<IgniteInternalFuture<?>>() {
@@ -3299,7 +3303,7 @@ public class GridNearTxLocal extends 
GridDhtTxLocalAdapter implements GridTimeou
             if (!FINISH_FUT_UPD.compareAndSet(this, null, fut0 = new 
GridNearTxFastFinishFuture(this, false)))
                 return chainFinishFuture(finishFut, false);
 
-            fut0.finish();
+            fut0.finish(false, onTimeout);
 
             return fut0;
         }
@@ -3376,12 +3380,8 @@ public class GridNearTxLocal extends 
GridDhtTxLocalAdapter implements GridTimeou
 
                                 assert rollbackFut.isDone() : rollbackFut;
                             }
-                            else {
-                                if (!cctx.mvcc().addFuture(rollbackFut, 
rollbackFut.futureId()))
-                                    return;
-
+                            else
                                 rollbackFut.finish(false, true);
-                            }
                         }
                     }
                 });

http://git-wip-us.apache.org/repos/asf/ignite/blob/0c4325a3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/NearTxFinishFuture.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/NearTxFinishFuture.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/NearTxFinishFuture.java
index 9223c9f..19dca86 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/NearTxFinishFuture.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/NearTxFinishFuture.java
@@ -31,6 +31,7 @@ public interface NearTxFinishFuture extends 
IgniteInternalFuture<IgniteInternalT
 
     /**
      * @param commit {@code True} to commit, otherwise rollback.
+     * @param clearThreadMap If {@code true} removes {@link GridNearTxLocal} 
from thread map.
      */
-    public void finish(boolean commit);
+    public void finish(boolean commit, boolean clearThreadMap);
 }

Reply via email to