Repository: ignite Updated Branches: refs/heads/ignite-5075-pds ca57919da -> c6e89cec4
ignite-5075 Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/c6e89cec Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/c6e89cec Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/c6e89cec Branch: refs/heads/ignite-5075-pds Commit: c6e89cec41feae3042122f4ea58d3a67098aef32 Parents: ca57919 Author: sboikov <sboi...@gridgain.com> Authored: Wed May 24 09:21:35 2017 +0300 Committer: sboikov <sboi...@gridgain.com> Committed: Wed May 24 09:21:35 2017 +0300 ---------------------------------------------------------------------- .../near/GridNearOptimisticTxPrepareFuture.java | 21 ++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/c6e89cec/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java index f4ce1ac..edddf7d 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java @@ -58,6 +58,7 @@ import org.apache.ignite.internal.util.typedef.X; import org.apache.ignite.internal.util.typedef.internal.S; import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.lang.IgniteBiClosure; +import org.apache.ignite.lang.IgniteInClosure; import org.apache.ignite.transactions.TransactionDeadlockException; import org.apache.ignite.transactions.TransactionTimeoutException; import org.jetbrains.annotations.Nullable; @@ -159,12 +160,20 @@ public class GridNearOptimisticTxPrepareFuture extends GridNearOptimisticTxPrepa if (e instanceof IgniteTxRollbackCheckedException) { if (marked) { - try { - tx.rollback(); - } - catch (IgniteCheckedException ex) { - U.error(log, "Failed to automatically rollback transaction: " + tx, ex); - } + tx.rollbackAsync().listen(new IgniteInClosure<IgniteInternalFuture<IgniteInternalTx>>() { + @Override public void apply(IgniteInternalFuture<IgniteInternalTx> fut) { + try { + fut.get(); + } + catch (IgniteCheckedException e) { + U.error(log, "Failed to automatically rollback transaction: " + tx, e); + } + + onComplete(); + } + }); + + return; } }