[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