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} */

Reply via email to