Author: manik.surtani(a)jboss.com
Date: 2008-01-02 06:56:56 -0500 (Wed, 02 Jan 2008)
New Revision: 4940
Modified:
core/trunk/src/main/java/org/jboss/cache/CacheImpl.java
core/trunk/src/main/java/org/jboss/cache/invocation/AbstractInvocationDelegate.java
core/trunk/src/main/java/org/jboss/cache/invocation/RemoteCacheInvocationDelegate.java
core/trunk/src/main/java/org/jboss/cache/marshall/MethodDeclarations.java
Log:
Fixed data gravitation issues
Modified: core/trunk/src/main/java/org/jboss/cache/CacheImpl.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/CacheImpl.java 2008-01-02 11:30:24 UTC (rev
4939)
+++ core/trunk/src/main/java/org/jboss/cache/CacheImpl.java 2008-01-02 11:56:56 UTC (rev
4940)
@@ -2827,7 +2827,7 @@
// use a get() call into the cache to make sure cache loading takes
place.
ctx.getOptionOverrides().setSkipDataGravitation(true);
- actualNode = get(backupNodeFqn);
+ actualNode = spi.getNode(backupNodeFqn);
ctx.getOptionOverrides().setSkipDataGravitation(false);
if (log.isTraceEnabled())
log.trace("Looking for " + backupNodeFqn + ".
Search result: " + actualNode);
@@ -2908,8 +2908,10 @@
if (log.isTraceEnabled())
log.trace("DataGravitationCleanup: Removing primary (" + primary +
") and backup (" + backup + ")");
//primaryDataCleanup =
MethodCallFactory.create(MethodDeclarations.removeNodeMethodLocal, primary, false);
+ spi.getInvocationContext().getOptionOverrides().setCacheModeLocal(true);
spi.removeNode(primary);
//backupDataCleanup =
MethodCallFactory.create(MethodDeclarations.removeNodeMethodLocal, backup, false);
+ spi.getInvocationContext().getOptionOverrides().setCacheModeLocal(true);
spi.removeNode(backup);
}
else
Modified:
core/trunk/src/main/java/org/jboss/cache/invocation/AbstractInvocationDelegate.java
===================================================================
---
core/trunk/src/main/java/org/jboss/cache/invocation/AbstractInvocationDelegate.java 2008-01-02
11:30:24 UTC (rev 4939)
+++
core/trunk/src/main/java/org/jboss/cache/invocation/AbstractInvocationDelegate.java 2008-01-02
11:56:56 UTC (rev 4940)
@@ -10,7 +10,6 @@
import org.jboss.cache.factories.annotations.Inject;
import org.jboss.cache.interceptors.Interceptor;
import org.jboss.cache.marshall.MethodCall;
-import org.jboss.cache.marshall.MethodDeclarations;
/**
* The JBoss Cache hand-wired interceptor stack. A "minimal" AOP framework
which uses delegation through an
@@ -76,7 +75,7 @@
InvocationContext ctx = invocationContextContainer.get();
// BR methods should NOT block on the cache being started, since the cache depends
on these completing to start.
- if (!MethodDeclarations.isBuddyGroupOrganisationMethod(call.getMethodId())
&&
+ if (//!MethodDeclarations.isBuddyGroupOrganisationMethod(call.getMethodId())
&&
!cache.getCacheStatus().allowInvocations() && !skipCacheStatusCheck)
{
// only throw an exception if this is a locally originating call - JBCACHE-1179
Modified:
core/trunk/src/main/java/org/jboss/cache/invocation/RemoteCacheInvocationDelegate.java
===================================================================
---
core/trunk/src/main/java/org/jboss/cache/invocation/RemoteCacheInvocationDelegate.java 2008-01-02
11:30:24 UTC (rev 4939)
+++
core/trunk/src/main/java/org/jboss/cache/invocation/RemoteCacheInvocationDelegate.java 2008-01-02
11:56:56 UTC (rev 4940)
@@ -30,8 +30,13 @@
{
if (methodCall.getMethodId() == MethodDeclarations.clusteredGetMethod_id)
return invokeClusteredGet(methodCall);
- else if (MethodDeclarations.isDataGravitationMethod(methodCall.getMethodId()))
- return invokeDataGravitationCall(methodCall);
+ else if (methodCall.getMethodId() ==
MethodDeclarations.dataGravitationCleanupMethod_id)
+ {
+ Object[] args = methodCall.getArgs();
+ cache._dataGravitationCleanup((GlobalTransaction) args[0], (Fqn) args[1], (Fqn)
args[2]);
+ return null;
+ }
+
else
{
try
@@ -75,25 +80,6 @@
return clusteredGet((MethodCall) args[0], (Boolean) args[1]);
}
- public Object invokeDataGravitationCall(MethodCall call) throws Exception
- {
- Object[] args = call.getArgs();
- if (call.getMethodId() == MethodDeclarations.dataGravitationMethod_id)
- {
- return cache.gravitateData((Fqn) args[0], (Boolean) args[1]);
- }
- else if (call.getMethodId() == MethodDeclarations.dataGravitationCleanupMethod_id)
- {
- cache._dataGravitationCleanup((GlobalTransaction) args[0], (Fqn) args[1], (Fqn)
args[2]);
- return null;
- }
- else
- {
- throw new UnsupportedOperationException(call + " is not a data gravitation
call!");
- }
- }
-
-
public void block()
{
MethodCall m = MethodCallFactory.create(MethodDeclarations.blockChannelLocal);
Modified: core/trunk/src/main/java/org/jboss/cache/marshall/MethodDeclarations.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/marshall/MethodDeclarations.java 2008-01-02
11:30:24 UTC (rev 4939)
+++ core/trunk/src/main/java/org/jboss/cache/marshall/MethodDeclarations.java 2008-01-02
11:56:56 UTC (rev 4940)
@@ -10,6 +10,7 @@
import org.apache.commons.logging.LogFactory;
import org.jboss.cache.CacheException;
import org.jboss.cache.CacheImpl;
+import org.jboss.cache.CacheSPI;
import org.jboss.cache.Fqn;
import org.jboss.cache.Node;
import org.jboss.cache.buddyreplication.BuddyGroup;
@@ -276,7 +277,7 @@
remoteAssignToBuddyGroupMethod =
CacheImpl.class.getDeclaredMethod("_remoteAssignToBuddyGroup", BuddyGroup.class,
Map.class);
dataGravitationCleanupMethod =
CacheImpl.class.getDeclaredMethod("_dataGravitationCleanup",
GlobalTransaction.class, Fqn.class, Fqn.class);
- dataGravitationMethod =
CacheImpl.class.getDeclaredMethod("gravitateData", Fqn.class, boolean.class);
+ dataGravitationMethod =
CacheSPI.class.getDeclaredMethod("gravitateData", Fqn.class, boolean.class);
// ------------ move() api
moveMethodLocal = CacheImpl.class.getDeclaredMethod("_move",
Fqn.class, Fqn.class);