You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2019/01/23 11:56:25 UTC

[ignite] 01/01: ignite-835

This is an automated email from the ASF dual-hosted git repository.

sboikov pushed a commit to branch ignite-835
in repository https://gitbox.apache.org/repos/asf/ignite.git

commit 5d6baf39724c0b420a32a7b3255e6c795bf0ec7a
Author: sboikov <sb...@apache.org>
AuthorDate: Wed Jan 23 14:55:33 2019 +0300

    ignite-835
---
 .../processors/cache/GridCacheExplicitLockSpan.java     | 17 +++++++++++++++--
 .../GridCachePartitionedNearDisabledLockSelfTest.java   |  7 -------
 .../replicated/GridCacheReplicatedLockSelfTest.java     |  7 -------
 .../Cache/CacheAbstractTransactionalTest.cs             |  1 -
 4 files changed, 15 insertions(+), 17 deletions(-)

diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheExplicitLockSpan.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheExplicitLockSpan.java
index b0cb302..dfc12d7 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheExplicitLockSpan.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheExplicitLockSpan.java
@@ -155,8 +155,21 @@ public class GridCacheExplicitLockSpan extends ReentrantLock {
             if (deque != null) {
                 assert !deque.isEmpty();
 
-                if (ver == null || deque.peekFirst().version().equals(ver)) {
-                    cand = deque.removeFirst();
+                GridCacheMvccCandidate first = deque.peekFirst();
+
+                if (ver == null || first.version().equals(ver)) {
+                    GridCacheMvccCandidate reentry  = first.unenter();
+
+                    if (reentry != null) {
+                        assert reentry.reentry() : reentry;
+
+                        boolean rmvd = deque.remove(reentry);
+
+                        assert rmvd : reentry;
+
+                        cand = reentry;
+                    } else
+                        cand = deque.removeFirst();
 
                     if (deque.isEmpty())
                         cands.remove(cand.key());
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledLockSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledLockSelfTest.java
index ff738c6..5ae5959 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledLockSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledLockSelfTest.java
@@ -19,7 +19,6 @@ package org.apache.ignite.internal.processors.cache.distributed.dht;
 
 import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.internal.processors.cache.distributed.near.GridCachePartitionedLockSelfTest;
-import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.JUnit4;
 
@@ -43,10 +42,4 @@ public class GridCachePartitionedNearDisabledLockSelfTest extends GridCacheParti
     @Override protected boolean isPartitioned() {
         return false;
     }
-
-    /** {@inheritDoc} */
-    @Test
-    @Override public void testLockReentrancy() throws Throwable {
-        fail("https://issues.apache.org/jira/browse/IGNITE-835");
-    }
 }
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/GridCacheReplicatedLockSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/GridCacheReplicatedLockSelfTest.java
index c37e814..81b1edf 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/GridCacheReplicatedLockSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/GridCacheReplicatedLockSelfTest.java
@@ -19,7 +19,6 @@ package org.apache.ignite.internal.processors.cache.distributed.replicated;
 
 import org.apache.ignite.cache.CacheMode;
 import org.apache.ignite.internal.processors.cache.distributed.GridCacheLockAbstractTest;
-import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.JUnit4;
 
@@ -34,10 +33,4 @@ public class GridCacheReplicatedLockSelfTest extends GridCacheLockAbstractTest {
     @Override protected CacheMode cacheMode() {
         return REPLICATED;
     }
-
-    /** {@inheritDoc} */
-    @Test
-    @Override public void testLockReentrancy() throws Throwable {
-        fail("https://issues.apache.org/jira/browse/IGNITE-835");
-    }
 }
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/CacheAbstractTransactionalTest.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/CacheAbstractTransactionalTest.cs
index a70d9b7..d74a55f 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/CacheAbstractTransactionalTest.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/CacheAbstractTransactionalTest.cs
@@ -79,7 +79,6 @@ namespace Apache.Ignite.Core.Tests.Cache
         /// Tests cache locks.
         /// </summary>
         [Test]
-        [Ignore("IGNITE-835")]
         public void TestLock()
         {
             var cache = Cache();