Repository: ignite Updated Branches: refs/heads/ignite-8446 fe04e3532 -> 3c8c3077d
8446 Signed-off-by: Anton Vinogradov <a...@apache.org> Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/3c8c3077 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/3c8c3077 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/3c8c3077 Branch: refs/heads/ignite-8446 Commit: 3c8c3077d5f251e073cb5ccd97a7dbb6c7974776 Parents: fe04e35 Author: Anton Vinogradov <a...@apache.org> Authored: Mon Jul 2 19:13:33 2018 +0300 Committer: Anton Vinogradov <a...@apache.org> Committed: Mon Jul 2 19:13:33 2018 +0300 ---------------------------------------------------------------------- .../transactions/TransactionEventProxyImpl.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/3c8c3077/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/TransactionEventProxyImpl.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/TransactionEventProxyImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/TransactionEventProxyImpl.java index 23c9bde..62ce2f4 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/TransactionEventProxyImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/TransactionEventProxyImpl.java @@ -24,10 +24,10 @@ import java.io.ObjectOutput; import java.util.UUID; import org.apache.ignite.IgniteException; import org.apache.ignite.events.TransactionStateChangedEvent; +import org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal; import org.apache.ignite.lang.IgniteAsyncSupport; import org.apache.ignite.lang.IgniteFuture; import org.apache.ignite.lang.IgniteUuid; -import org.apache.ignite.transactions.Transaction; import org.apache.ignite.transactions.TransactionConcurrency; import org.apache.ignite.transactions.TransactionIsolation; import org.apache.ignite.transactions.TransactionState; @@ -45,8 +45,11 @@ public class TransactionEventProxyImpl implements TransactionProxy, Externalizab /** Xid. */ private IgniteUuid xid; - /** Tx proxy. */ - private TransactionProxy tx; + /** Tx. */ + private GridNearTxLocal tx; + + /** Proxy. */ + private TransactionProxy proxy; /** * Default constructor (required by Externalizable). @@ -58,7 +61,7 @@ public class TransactionEventProxyImpl implements TransactionProxy, Externalizab * @param xid Xid. * @param tx Tx proxy. */ - public TransactionEventProxyImpl(IgniteUuid xid, TransactionProxy tx) { + public TransactionEventProxyImpl(IgniteUuid xid, GridNearTxLocal tx) { assert xid != null; assert tx != null; @@ -191,13 +194,16 @@ public class TransactionEventProxyImpl implements TransactionProxy, Externalizab * @return local transaction * @throws IgniteException in case tx was not found. */ - private Transaction tx() throws IgniteException { + private TransactionProxy tx() throws IgniteException { if (tx == null) throw new IgniteException("Operation allowed only inside remote filter or " + "inside local listener registered on originating node. " + "Only xid() operation allowed in other cases. "); - return tx; + if (proxy == null) // Lazy init to speedup event creation. + proxy = tx.rollbackOnlyProxy(); + + return proxy; } /** {@inheritDoc} */