Repository: ignite
Updated Branches:
  refs/heads/ignite-8446 778dd0dce -> 2e11d9fd0


8446

Signed-off-by: Anton Vinogradov <[email protected]>


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

Branch: refs/heads/ignite-8446
Commit: 2e11d9fd0f3bafa8ac773ee4e89a78121e959ea9
Parents: 778dd0d
Author: Anton Vinogradov <[email protected]>
Authored: Tue Jun 26 17:06:13 2018 +0300
Committer: Anton Vinogradov <[email protected]>
Committed: Tue Jun 26 17:06:13 2018 +0300

----------------------------------------------------------------------
 .../org/apache/ignite/events/EventType.java     |  15 +-
 .../cache/distributed/near/GridNearTxLocal.java |   8 +-
 .../cache/transactions/IgniteTxAdapter.java     | 199 ++++---------------
 .../cache/transactions/IgniteTxManager.java     |   1 -
 .../transactions/TxStateChangeEventTest.java    |  41 +---
 5 files changed, 55 insertions(+), 209 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/2e11d9fd/modules/core/src/main/java/org/apache/ignite/events/EventType.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/events/EventType.java 
b/modules/core/src/main/java/org/apache/ignite/events/EventType.java
index e11f697..a6ab962 100644
--- a/modules/core/src/main/java/org/apache/ignite/events/EventType.java
+++ b/modules/core/src/main/java/org/apache/ignite/events/EventType.java
@@ -841,18 +841,6 @@ public interface EventType {
     public static final int EVT_TX_RESUMED = 133;
 
     /**
-     * Built-in event type: Transaction has been prepared.
-     * <p>
-     * Fired for each prepared transaction except system transactions.
-     * <p>
-     * NOTE: all types in range <b>from 1 to 1000 are reserved</b> for
-     * internal Ignite events and should not be used by user-defined events.
-     *
-     * @see TransactionStateChangedEvent
-     */
-    public static final int EVT_TX_PREPARED = 134;
-
-    /**
      * All checkpoint events. This array can be directly passed into
      * {@link IgniteEvents#localListen(IgnitePredicate, int...)} method to
      * subscribe to all checkpoint events.
@@ -1062,8 +1050,7 @@ public interface EventType {
         EVT_TX_COMMITTED,
         EVT_TX_ROLLED_BACK,
         EVT_TX_SUSPENDED,
-        EVT_TX_RESUMED,
-        EVT_TX_PREPARED
+        EVT_TX_RESUMED
     };
 
     /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/2e11d9fd/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 a810638..16653e0 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
@@ -47,10 +47,10 @@ import 
org.apache.ignite.internal.processors.cache.GridCacheContext;
 import org.apache.ignite.internal.processors.cache.GridCacheEntryEx;
 import 
org.apache.ignite.internal.processors.cache.GridCacheEntryRemovedException;
 import org.apache.ignite.internal.processors.cache.GridCacheMvccCandidate;
+import org.apache.ignite.internal.processors.cache.GridCacheVersionedFuture;
 import org.apache.ignite.internal.processors.cache.GridCacheOperation;
 import org.apache.ignite.internal.processors.cache.GridCacheReturn;
 import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
-import org.apache.ignite.internal.processors.cache.GridCacheVersionedFuture;
 import org.apache.ignite.internal.processors.cache.IgniteCacheExpiryPolicy;
 import org.apache.ignite.internal.processors.cache.KeyCacheObject;
 import 
org.apache.ignite.internal.processors.cache.distributed.GridDistributedCacheEntry;
@@ -3981,8 +3981,10 @@ public class GridNearTxLocal extends 
GridDhtTxLocalAdapter implements GridTimeou
         return hasRemoteLocks;
     }
 
-    /** {@inheritDoc} */
-    @Override public TransactionProxy proxy() {
+    /**
+     * @return Public API proxy.
+     */
+    public TransactionProxy proxy() {
         if (proxy == null)
             proxy = new TransactionProxyImpl(this, cctx, false);
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/2e11d9fd/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
index e8e06d7..f7c5b11 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
@@ -62,6 +62,7 @@ import 
org.apache.ignite.internal.processors.cache.GridCacheReturn;
 import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
 import org.apache.ignite.internal.processors.cache.KeyCacheObject;
 import 
org.apache.ignite.internal.processors.cache.distributed.near.GridNearCacheEntry;
+import 
org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal;
 import org.apache.ignite.internal.processors.cache.store.CacheStoreManager;
 import 
org.apache.ignite.internal.processors.cache.version.GridCacheLazyPlainVersionedEntry;
 import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
@@ -82,9 +83,7 @@ import org.apache.ignite.internal.util.typedef.T2;
 import org.apache.ignite.internal.util.typedef.internal.CU;
 import org.apache.ignite.internal.util.typedef.internal.S;
 import org.apache.ignite.internal.util.typedef.internal.U;
-import org.apache.ignite.lang.IgniteAsyncSupport;
 import org.apache.ignite.lang.IgniteBiTuple;
-import org.apache.ignite.lang.IgniteFuture;
 import org.apache.ignite.lang.IgniteUuid;
 import org.apache.ignite.transactions.TransactionConcurrency;
 import org.apache.ignite.transactions.TransactionIsolation;
@@ -93,7 +92,6 @@ import org.jetbrains.annotations.Nullable;
 
 import static org.apache.ignite.events.EventType.EVT_CACHE_OBJECT_READ;
 import static org.apache.ignite.events.EventType.EVT_TX_COMMITTED;
-import static org.apache.ignite.events.EventType.EVT_TX_PREPARED;
 import static org.apache.ignite.events.EventType.EVT_TX_RESUMED;
 import static org.apache.ignite.events.EventType.EVT_TX_ROLLED_BACK;
 import static org.apache.ignite.events.EventType.EVT_TX_SUSPENDED;
@@ -1017,8 +1015,6 @@ public abstract class IgniteTxAdapter extends 
GridMetadataAwareAdapter implement
     protected final boolean state(TransactionState state, boolean timedOut) {
         boolean valid = false;
 
-        int evtType = -1;
-
         TransactionState prev;
 
         boolean notify = false;
@@ -1032,8 +1028,6 @@ public abstract class IgniteTxAdapter extends 
GridMetadataAwareAdapter implement
                 case ACTIVE: {
                     valid = prev == SUSPENDED;
 
-                    evtType = EVT_TX_RESUMED;
-
                     break;
                 }
                 case PREPARING: {
@@ -1044,8 +1038,6 @@ public abstract class IgniteTxAdapter extends 
GridMetadataAwareAdapter implement
                 case PREPARED: {
                     valid = prev == PREPARING;
 
-                    evtType = EVT_TX_PREPARED;
-
                     break;
                 }
                 case COMMITTING: {
@@ -1069,8 +1061,6 @@ public abstract class IgniteTxAdapter extends 
GridMetadataAwareAdapter implement
 
                     valid = prev == COMMITTING;
 
-                    evtType = EVT_TX_COMMITTED;
-
                     break;
                 }
 
@@ -1080,8 +1070,6 @@ public abstract class IgniteTxAdapter extends 
GridMetadataAwareAdapter implement
 
                     valid = prev == ROLLING_BACK;
 
-                    evtType = EVT_TX_ROLLED_BACK;
-
                     break;
                 }
 
@@ -1101,8 +1089,6 @@ public abstract class IgniteTxAdapter extends 
GridMetadataAwareAdapter implement
                 case SUSPENDED: {
                     valid = prev == ACTIVE;
 
-                    evtType = EVT_TX_SUSPENDED;
-
                     break;
                 }
             }
@@ -1116,8 +1102,7 @@ public abstract class IgniteTxAdapter extends 
GridMetadataAwareAdapter implement
                 if (log.isDebugEnabled())
                     log.debug("Changed transaction state [prev=" + prev + ", 
new=" + this.state + ", tx=" + this + ']');
 
-                if (evtType != -1)
-                    recordStateChangedEvent(evtType);
+                recordStateChanged(state);
 
                 notifyAll();
             }
@@ -1184,6 +1169,41 @@ public abstract class IgniteTxAdapter extends 
GridMetadataAwareAdapter implement
         return valid;
     }
 
+    /** */
+    private void recordStateChanged(TransactionState state){
+        if (!near() || !local()) // Covers only GridNearTxLocal's state 
changes.
+            return;
+
+        switch (state) {
+            case ACTIVE: {
+                recordStateChangedEvent(EVT_TX_RESUMED);
+
+                break;
+            }
+
+            case COMMITTED: {
+                recordStateChangedEvent(EVT_TX_COMMITTED);
+
+                break;
+            }
+
+            case ROLLED_BACK: {
+                recordStateChangedEvent(EVT_TX_ROLLED_BACK);
+
+                break;
+            }
+
+            case SUSPENDED: {
+                recordStateChangedEvent(EVT_TX_SUSPENDED);
+
+                break;
+            }
+
+            default:
+                return;
+        }
+    }
+
     /**
      * @param type Event type.
      */
@@ -1191,7 +1211,8 @@ public abstract class IgniteTxAdapter extends 
GridMetadataAwareAdapter implement
         GridEventStorageManager evtMgr = cctx.gridEvents();
 
         if (!system() /* ignoring system tx */ && evtMgr.isRecordable(type))
-            evtMgr.record(new 
TransactionStateChangedEvent(cctx.discovery().localNode(), null, type, 
proxy()));
+            evtMgr.record(new TransactionStateChangedEvent(
+                cctx.discovery().localNode(), null, type, 
((GridNearTxLocal)this).proxy()));
     }
 
     /** {@inheritDoc} */
@@ -1237,13 +1258,6 @@ public abstract class IgniteTxAdapter extends 
GridMetadataAwareAdapter implement
         this.sysInvalidate = sysInvalidate;
     }
 
-    /**
-     * @return Public API proxy.
-     */
-    public TransactionProxy proxy() {
-        return new DefaultTransactionProxyImpl(this);
-    }
-
     /** {@inheritDoc} */
     @Nullable @Override public Map<UUID, Collection<UUID>> transactionNodes() {
         return txNodes;
@@ -2453,139 +2467,4 @@ public abstract class IgniteTxAdapter extends 
GridMetadataAwareAdapter implement
             return S.toString(TxFinishFuture.class, this, "duration", 
duration);
         }
     }
-
-    /**
-     * Default proxy.
-     */
-    private static class DefaultTransactionProxyImpl implements 
TransactionProxy{
-        /** Tx. */
-        private IgniteTxAdapter tx;
-
-        /**
-         * @param tx Tx.
-         */
-        public DefaultTransactionProxyImpl(IgniteTxAdapter tx) {
-            this.tx = tx;
-        }
-
-        /** {@inheritDoc} */
-        @Override public IgniteUuid xid() {
-            return tx.xid();
-        }
-
-        /** {@inheritDoc} */
-        @Override public UUID nodeId() {
-            return tx.nodeId();
-        }
-
-        /** {@inheritDoc} */
-        @Override public long threadId() {
-            return tx.threadId();
-        }
-
-        /** {@inheritDoc} */
-        @Override public long startTime() {
-            return tx.startTime();
-        }
-
-        /** {@inheritDoc} */
-        @Override public TransactionIsolation isolation() {
-            return tx.isolation();
-        }
-
-        /** {@inheritDoc} */
-        @Override public TransactionConcurrency concurrency() {
-            return tx.concurrency();
-        }
-
-        /** {@inheritDoc} */
-        @Override public boolean implicit() {
-            return tx.implicit();
-        }
-
-        /** {@inheritDoc} */
-        @Override public boolean isInvalidate() {
-            return tx.isInvalidate();
-        }
-
-        /** {@inheritDoc} */
-        @Override public TransactionState state() {
-            return tx.state();
-        }
-
-        /** {@inheritDoc} */
-        @Override public long timeout() {
-            return tx.timeout();
-        }
-
-        /** {@inheritDoc} */
-        @Override public long timeout(long timeout) {
-            throw new UnsupportedOperationException();
-        }
-
-        /** {@inheritDoc} */
-        @Override public boolean setRollbackOnly() {
-            throw new UnsupportedOperationException();
-        }
-
-        /** {@inheritDoc} */
-        @Override public boolean isRollbackOnly() {
-            return tx.isRollbackOnly();
-        }
-
-        /** {@inheritDoc} */
-        @Override public void commit() throws IgniteException {
-            throw new UnsupportedOperationException();
-        }
-
-        /** {@inheritDoc} */
-        @Override public IgniteFuture<Void> commitAsync() throws 
IgniteException {
-            throw new UnsupportedOperationException();
-        }
-
-        /** {@inheritDoc} */
-        @Override public void close() throws IgniteException {
-            throw new UnsupportedOperationException();
-        }
-
-        /** {@inheritDoc} */
-        @Override public void rollback() throws IgniteException {
-            throw new UnsupportedOperationException();
-        }
-
-        /** {@inheritDoc} */
-        @Override public IgniteFuture<Void> rollbackAsync() throws 
IgniteException {
-            throw new UnsupportedOperationException();
-        }
-
-        /** {@inheritDoc} */
-        @Override public void resume() throws IgniteException {
-            throw new UnsupportedOperationException();
-        }
-
-        /** {@inheritDoc} */
-        @Override public void suspend() throws IgniteException {
-            throw new UnsupportedOperationException();
-        }
-
-        /** {@inheritDoc} */
-        @Nullable @Override public String label() {
-            throw new UnsupportedOperationException();
-        }
-
-        /** {@inheritDoc} */
-        @Override public IgniteAsyncSupport withAsync() {
-            throw new UnsupportedOperationException();
-        }
-
-        /** {@inheritDoc} */
-        @Override public boolean isAsync() {
-            throw new UnsupportedOperationException();
-        }
-
-        /** {@inheritDoc} */
-        @Override public <R> IgniteFuture<R> future() {
-            throw new UnsupportedOperationException();
-        }
-    }
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/2e11d9fd/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
index dd7f14d..4dbbe85 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
@@ -534,7 +534,6 @@ public class IgniteTxManager extends 
GridCacheSharedManagerAdapter {
                         sysThreadMap.put(new TxThreadKey(tx.threadId(), 
cacheCtx.cacheId()), tx);
                 }
 
-                // tx.state(newState) does not cover tx start case.
                 ((GridNearTxLocal)tx).recordStateChangedEvent(EVT_TX_STARTED);
             }
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/2e11d9fd/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxStateChangeEventTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxStateChangeEventTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxStateChangeEventTest.java
index 9d3e86b..d688465 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxStateChangeEventTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxStateChangeEventTest.java
@@ -33,7 +33,6 @@ import org.apache.ignite.transactions.TransactionState;
 
 import static org.apache.ignite.events.EventType.EVTS_TX;
 import static org.apache.ignite.events.EventType.EVT_TX_COMMITTED;
-import static org.apache.ignite.events.EventType.EVT_TX_PREPARED;
 import static org.apache.ignite.events.EventType.EVT_TX_RESUMED;
 import static org.apache.ignite.events.EventType.EVT_TX_ROLLED_BACK;
 import static org.apache.ignite.events.EventType.EVT_TX_STARTED;
@@ -64,9 +63,6 @@ public class TxStateChangeEventTest extends 
GridCommonAbstractTest {
     /** Resume. */
     private AtomicBoolean resume = new AtomicBoolean();
 
-    /** Prepare. */
-    private AtomicBoolean prepare = new AtomicBoolean();
-
     /**
      *
      */
@@ -125,8 +121,7 @@ public class TxStateChangeEventTest extends 
GridCommonAbstractTest {
                 commit.get() &&
                 !rollback.get() &&
                 !suspend.get() &&
-                !resume.get() &&
-                prepare.get());
+                !resume.get());
 
         clear();
 
@@ -149,8 +144,7 @@ public class TxStateChangeEventTest extends 
GridCommonAbstractTest {
                 commit.get() &&
                 !rollback.get() &&
                 suspend.get() &&
-                resume.get()&&
-                prepare.get());
+                resume.get());
 
         clear();
 
@@ -165,8 +159,7 @@ public class TxStateChangeEventTest extends 
GridCommonAbstractTest {
                 !commit.get() &&
                 rollback.get() &&
                 !suspend.get() &&
-                !resume.get()&&
-                !prepare.get());
+                !resume.get());
     }
 
     /**
@@ -178,7 +171,6 @@ public class TxStateChangeEventTest extends 
GridCommonAbstractTest {
         rollback.set(false);
         suspend.set(false);
         resume.set(false);
-        prepare.set(false);
     }
 
     /**
@@ -187,15 +179,14 @@ public class TxStateChangeEventTest extends 
GridCommonAbstractTest {
     private void checkEvent(TransactionStateChangedEvent evt) {
         Transaction tx = evt.tx();
 
-        assertTrue(tx.timeout() > 0); // Remote tx has relative timeout
+        assertEquals(timeout, tx.timeout());
+        assertEquals(lb, tx.label());
 
         switch (evt.type()) {
             case EVT_TX_STARTED: {
-                assertEquals(lb, tx.label());
-                assertFalse(creation.get());
                 assertEquals(tx.state(), TransactionState.ACTIVE);
 
-                creation.set(true);
+                assertFalse(creation.getAndSet(true));
 
                 break;
             }
@@ -203,7 +194,7 @@ public class TxStateChangeEventTest extends 
GridCommonAbstractTest {
             case EVT_TX_COMMITTED: {
                 assertEquals(tx.state(), TransactionState.COMMITTED);
 
-                commit.set(true);
+                assertFalse(commit.getAndSet(true));
 
                 break;
             }
@@ -211,35 +202,23 @@ public class TxStateChangeEventTest extends 
GridCommonAbstractTest {
             case EVT_TX_ROLLED_BACK: {
                 assertEquals(tx.state(), TransactionState.ROLLED_BACK);
 
-                rollback.set(true);
+                assertFalse(rollback.getAndSet(true));
 
                 break;
             }
 
             case EVT_TX_SUSPENDED: {
-                assertEquals(lb, tx.label());
-                assertFalse(commit.get());
                 assertEquals(tx.state(), TransactionState.SUSPENDED);
 
-                suspend.set(true);
+                assertFalse(suspend.getAndSet(true));
 
                 break;
             }
 
             case EVT_TX_RESUMED: {
-                assertEquals(lb, tx.label());
-                assertFalse(commit.get());
                 assertEquals(tx.state(), TransactionState.ACTIVE);
 
-                resume.set(true);
-
-                break;
-            }
-
-            case EVT_TX_PREPARED: {
-                assertEquals(tx.state(), TransactionState.PREPARED);
-
-                prepare.set(true);
+                assertFalse(resume.getAndSet(true));
 
                 break;
             }

Reply via email to