IGNITE-9384 Fixed PCPC problem for transactions.

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

Branch: refs/heads/ignite-7251
Commit: 5818b198be425245f92e0de1c7c10b1e87453c93
Parents: 935e712
Author: Andrey Gura <ag...@apache.org>
Authored: Mon Sep 10 19:25:47 2018 +0300
Committer: Andrey Gura <ag...@apache.org>
Committed: Mon Sep 17 01:26:30 2018 +0300

----------------------------------------------------------------------
 .../cache/distributed/dht/GridDhtTxPrepareFuture.java  | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/5818b198/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 8ac5419..1974038 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
@@ -803,13 +803,10 @@ public final class GridDhtTxPrepareFuture extends 
GridCacheCompoundFuture<Ignite
             if (REPLIED_UPD.compareAndSet(this, 0, 1)) {
                 GridNearTxPrepareResponse res = 
createPrepareResponse(this.err);
 
-                try {
-                    sendPrepareResponse(res);
-                }
-                finally {
-                    // Will call super.onDone().
-                    onComplete(res);
-                }
+                // Will call super.onDone().
+                onComplete(res);
+
+                sendPrepareResponse(res);
 
                 return true;
             }
@@ -1004,7 +1001,7 @@ public final class GridDhtTxPrepareFuture extends 
GridCacheCompoundFuture<Ignite
      * @return {@code True} if {@code done} flag was changed as a result of 
this call.
      */
     private boolean onComplete(@Nullable GridNearTxPrepareResponse res) {
-        if (last || tx.isSystemInvalidate())
+        if ((last || tx.isSystemInvalidate()) && !(tx.near() && tx.local()))
             tx.state(PREPARED);
 
         if (super.onDone(res, res == null ? err : null)) {

Reply via email to