[infinispan-commits] Infinispan SVN: r2158 - in branches/4.1.x: core/src/test/java/org/infinispan/api and 1 other directories.

infinispan-commits at lists.jboss.org infinispan-commits at lists.jboss.org
Wed Aug 4 10:32:32 EDT 2010


Author: galder.zamarreno at jboss.com
Date: 2010-08-04 10:32:31 -0400 (Wed, 04 Aug 2010)
New Revision: 2158

Added:
   branches/4.1.x/core/src/test/java/org/infinispan/api/SkipLockingTest.java
Modified:
   branches/4.1.x/core/src/main/java/org/infinispan/interceptors/LockingInterceptor.java
   branches/4.1.x/parent/
Log:
[ISPN-569] (IllegalMonitorStateException thrown when releasing the lock) Don't call unlock when the invocation contains SKIP_LOCKING flag.

Modified: branches/4.1.x/core/src/main/java/org/infinispan/interceptors/LockingInterceptor.java
===================================================================
--- branches/4.1.x/core/src/main/java/org/infinispan/interceptors/LockingInterceptor.java	2010-08-04 13:59:18 UTC (rev 2157)
+++ branches/4.1.x/core/src/main/java/org/infinispan/interceptors/LockingInterceptor.java	2010-08-04 14:32:31 UTC (rev 2158)
@@ -284,7 +284,7 @@
             }
 
             // and then unlock
-            if (needToUnlock) {
+            if (needToUnlock && !ctx.hasFlag(Flag.SKIP_LOCKING)) {
                if (trace) log.trace("Releasing lock on [" + key + "] for owner " + owner);
                lockManager.unlock(key);
             }

Added: branches/4.1.x/core/src/test/java/org/infinispan/api/SkipLockingTest.java
===================================================================
--- branches/4.1.x/core/src/test/java/org/infinispan/api/SkipLockingTest.java	                        (rev 0)
+++ branches/4.1.x/core/src/test/java/org/infinispan/api/SkipLockingTest.java	2010-08-04 14:32:31 UTC (rev 2158)
@@ -0,0 +1,45 @@
+package org.infinispan.api;
+
+import org.infinispan.AdvancedCache;
+import org.infinispan.context.Flag;
+import org.infinispan.manager.EmbeddedCacheManager;
+import org.infinispan.test.SingleCacheManagerTest;
+import org.infinispan.test.fwk.TestCacheManagerFactory;
+import org.testng.annotations.Test;
+
+import java.lang.reflect.Method;
+
+/**
+ * Tests {@link Flag#SKIP_LOCKING} logic
+ *
+ * @author Galder Zamarreño
+ * @since 4.1
+ */
+ at Test(groups = "functional", testName = "api.SkipLockingTest")
+public class SkipLockingTest extends SingleCacheManagerTest {
+
+   @Override
+   protected EmbeddedCacheManager createCacheManager() throws Exception {
+      return TestCacheManagerFactory.createLocalCacheManager(false);
+   }
+
+   public void testSkipLockingAfterPutWithoutTm(Method m) {
+      String name = m.getName();
+      AdvancedCache advancedCache = cacheManager.getCache().getAdvancedCache();
+      advancedCache.put("k-" + name, "v-" + name);
+      advancedCache.withFlags(Flag.SKIP_LOCKING).put("k-" + name, "v2-" + name);
+   }
+
+   public void testSkipLockingAfterPutWithTm(Method m) {
+      EmbeddedCacheManager cacheManager = TestCacheManagerFactory.createLocalCacheManager(true);
+      try {
+         AdvancedCache advancedCache = cacheManager.getCache().getAdvancedCache();
+         String name = m.getName();
+         advancedCache.put("k-" + name, "v-" + name);
+         advancedCache.withFlags(Flag.SKIP_LOCKING).put("k-" + name, "v2-" + name);
+      } finally {
+         cacheManager.stop();
+      }
+   }
+
+}


Property changes on: branches/4.1.x/parent
___________________________________________________________________
Name: svn:ignore
   - target
.project
.classpath
.settings

   + target
.project
.classpath
.settings
*.iml




More information about the infinispan-commits mailing list