IGNITE-6181 wip.

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

Branch: refs/heads/ignite-6181-1
Commit: a6faebdc36bd163e59733ba0764c3059f8286afc
Parents: b017713
Author: Aleksei Scherbakov <alexey.scherbak...@gmail.com>
Authored: Wed Sep 13 17:55:23 2017 +0300
Committer: Aleksei Scherbakov <alexey.scherbak...@gmail.com>
Committed: Wed Sep 13 17:55:23 2017 +0300

----------------------------------------------------------------------
 .../transactions/TxRollbackOnTimeoutTest.java   | 44 ++++++++++++++++++++
 1 file changed, 44 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/a6faebdc/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
index 20f6695..847f2b0 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
@@ -318,6 +318,50 @@ public class TxRollbackOnTimeoutTest extends 
GridCommonAbstractTest {
     }
 
     /**
+     * Tests tx timeout on deadlock.
+     *
+     * @throws Exception
+     */
+    public void testTimeoutOnDeadlock() throws Exception {
+        final CountDownLatch l = new CountDownLatch(2);
+
+        IgniteInternalFuture<?> fut1 = multithreadedAsync(new Runnable() {
+            @Override public void run() {
+                try(Transaction tx = 
grid(0).transactions().txStart(PESSIMISTIC, REPEATABLE_READ, TX_TIMEOUT, 1)) {
+                    grid(0).cache(CACHE_NAME).put(1, 1);
+
+                    l.countDown();
+                    U.awaitQuiet(l);
+
+                    grid(0).cache(CACHE_NAME).put(2, 2);
+                }
+
+            }
+        }, 1, "First");
+
+        IgniteInternalFuture<?> fut2 = multithreadedAsync(new Runnable() {
+            @Override public void run() {
+                try(Transaction tx = 
grid(1).transactions().txStart(PESSIMISTIC, REPEATABLE_READ, 0, 1)) {
+                    grid(1).cache(CACHE_NAME).put(2, 2);
+
+                    l.countDown();
+                    U.awaitQuiet(l);
+
+                    grid(1).cache(CACHE_NAME).put(1, 1);
+                }
+            }
+
+        }, 1, "Second");
+
+        fut1.get();
+
+        fut2.get();
+
+        assertTrue(grid(0).cache(CACHE_NAME).containsKey(1));
+        assertTrue(grid(0).cache(CACHE_NAME).containsKey(2));
+    }
+
+    /**
      * @param concurrency Concurrency.
      * @param isolation Isolation.
      *

Reply via email to