[infinispan-commits] Infinispan SVN: r707 - in trunk/core/src: test/java/org/infinispan/invalidation and 1 other directories.

infinispan-commits at lists.jboss.org infinispan-commits at lists.jboss.org
Wed Aug 19 12:58:31 EDT 2009


Author: galder.zamarreno at jboss.com
Date: 2009-08-19 12:58:30 -0400 (Wed, 19 Aug 2009)
New Revision: 707

Modified:
   trunk/core/src/main/java/org/infinispan/interceptors/InvalidationInterceptor.java
   trunk/core/src/test/java/org/infinispan/invalidation/BaseInvalidationTest.java
   trunk/core/src/test/java/org/infinispan/replication/BaseReplicatedAPITest.java
Log:
[ISPN-164] (clear() call with Flag.CACHE_MODE_LOCAL going remote) Check added to invalidation interceptor so that if forced, clear calls remain local.

Modified: trunk/core/src/main/java/org/infinispan/interceptors/InvalidationInterceptor.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/interceptors/InvalidationInterceptor.java	2009-08-19 10:18:49 UTC (rev 706)
+++ trunk/core/src/main/java/org/infinispan/interceptors/InvalidationInterceptor.java	2009-08-19 16:58:30 UTC (rev 707)
@@ -100,9 +100,11 @@
 
    @Override
    public Object visitClearCommand(InvocationContext ctx, ClearCommand command) throws Throwable {
-      // just broadcast the clear command - this is simplest!
       Object retval = invokeNextInterceptor(ctx, command);
-      if (ctx.isOriginLocal()) rpcManager.broadcastRpcCommand(command, defaultSynchronous);
+      if (!isLocalModeForced(ctx)) {
+         // just broadcast the clear command - this is simplest!
+         if (ctx.isOriginLocal()) rpcManager.broadcastRpcCommand(command, defaultSynchronous);
+      }
       return retval;
    }
 

Modified: trunk/core/src/test/java/org/infinispan/invalidation/BaseInvalidationTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/invalidation/BaseInvalidationTest.java	2009-08-19 10:18:49 UTC (rev 706)
+++ trunk/core/src/test/java/org/infinispan/invalidation/BaseInvalidationTest.java	2009-08-19 16:58:30 UTC (rev 707)
@@ -305,4 +305,17 @@
       assert cache1.get("key").equals("value1");
       assert cache2.get("key") == null;
    }
+   
+   public void testLocalOnlyClear() {
+      cache1.put("key", "value1", Flag.CACHE_MODE_LOCAL);
+      cache2.put("key", "value2", Flag.CACHE_MODE_LOCAL);
+      assert cache1.get("key").equals("value1");
+      assert cache2.get("key").equals("value2");
+
+      cache1.clear(Flag.CACHE_MODE_LOCAL);
+
+      assert cache1.get("key") == null;
+      assert cache2.get("key") != null;
+      assert cache2.get("key").equals("value2");
+   }
 }

Modified: trunk/core/src/test/java/org/infinispan/replication/BaseReplicatedAPITest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/replication/BaseReplicatedAPITest.java	2009-08-19 10:18:49 UTC (rev 706)
+++ trunk/core/src/test/java/org/infinispan/replication/BaseReplicatedAPITest.java	2009-08-19 16:58:30 UTC (rev 707)
@@ -185,4 +185,17 @@
       assert cache1.get("key").equals("value1");
       assert cache2.get("key").equals("value1");
    }
+   
+   public void testLocalOnlyClear() {
+      cache1.put("key", "value1", Flag.CACHE_MODE_LOCAL);
+      cache2.put("key", "value2", Flag.CACHE_MODE_LOCAL);
+      assert cache1.get("key").equals("value1");
+      assert cache2.get("key").equals("value2");
+
+      cache1.clear(Flag.CACHE_MODE_LOCAL);
+
+      assert cache1.get("key") == null;
+      assert cache2.get("key") != null;
+      assert cache2.get("key").equals("value2");
+   }
 }



More information about the infinispan-commits mailing list