[infinispan-commits] Infinispan SVN: r2156 - in branches/4.1.x/core/src: test/java/org/infinispan/loaders and 1 other directory.

infinispan-commits at lists.jboss.org infinispan-commits at lists.jboss.org
Wed Aug 4 09:58:26 EDT 2010


Author: galder.zamarreno at jboss.com
Date: 2010-08-04 09:58:25 -0400 (Wed, 04 Aug 2010)
New Revision: 2156

Modified:
   branches/4.1.x/core/src/main/java/org/infinispan/container/EntryFactoryImpl.java
   branches/4.1.x/core/src/test/java/org/infinispan/loaders/CacheLoaderFunctionalTest.java
Log:
[ISPN-565] (SKIP_LOCKING with cache loader and calling remove results in java.lang.ClassCastException) Fixed.

Modified: branches/4.1.x/core/src/main/java/org/infinispan/container/EntryFactoryImpl.java
===================================================================
--- branches/4.1.x/core/src/main/java/org/infinispan/container/EntryFactoryImpl.java	2010-08-04 12:22:08 UTC (rev 2155)
+++ branches/4.1.x/core/src/main/java/org/infinispan/container/EntryFactoryImpl.java	2010-08-04 13:58:25 UTC (rev 2156)
@@ -118,7 +118,7 @@
       {
          if (trace) log.trace("Exists in context.");
          // acquire lock if needed
-         if (alreadyLocked || acquireLock(ctx, key)) {
+         if (alreadyLocked || ctx.hasFlag(Flag.SKIP_LOCKING) || acquireLock(ctx, key)) {
 
             if (cacheEntry instanceof MVCCEntry && (!forRemoval || !(cacheEntry instanceof NullMarkerEntry))) {
                mvccEntry = (MVCCEntry) cacheEntry;

Modified: branches/4.1.x/core/src/test/java/org/infinispan/loaders/CacheLoaderFunctionalTest.java
===================================================================
--- branches/4.1.x/core/src/test/java/org/infinispan/loaders/CacheLoaderFunctionalTest.java	2010-08-04 12:22:08 UTC (rev 2155)
+++ branches/4.1.x/core/src/test/java/org/infinispan/loaders/CacheLoaderFunctionalTest.java	2010-08-04 13:58:25 UTC (rev 2156)
@@ -1,5 +1,6 @@
 package org.infinispan.loaders;
 
+import org.infinispan.AdvancedCache;
 import org.infinispan.Cache;
 import static org.infinispan.api.mvcc.LockAssert.assertNoLocks;
 import org.infinispan.config.CacheLoaderManagerConfig;
@@ -7,6 +8,7 @@
 import org.infinispan.container.DataContainer;
 import org.infinispan.container.entries.InternalCacheEntry;
 import org.infinispan.container.entries.InternalEntryFactory;
+import org.infinispan.context.Flag;
 import org.infinispan.lifecycle.ComponentStatus;
 import org.infinispan.loaders.dummy.DummyInMemoryCacheStore;
 import org.infinispan.manager.EmbeddedCacheManager;
@@ -20,6 +22,7 @@
 
 import javax.transaction.Transaction;
 import javax.transaction.TransactionManager;
+import java.lang.reflect.Method;
 import java.util.Collections;
 import static java.util.concurrent.TimeUnit.MILLISECONDS;
 
@@ -422,4 +425,11 @@
       assert "v1".equals(cache.get("k1"));
       assert "v2".equals(cache.get("k2"));
    }
+
+   public void testSkipLocking(Method m) {
+      String name = m.getName();
+      AdvancedCache advancedCache = cache.getAdvancedCache();
+      advancedCache.put("k-" + name, "v-" + name);
+      advancedCache.withFlags(Flag.SKIP_LOCKING).put("k-" + name, "v2-" + name);
+   }
 }



More information about the infinispan-commits mailing list