[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