[jboss-cvs] JBossCache/src/org/jboss/cache/interceptors ...
Manik Surtani
msurtani at jboss.com
Fri Nov 10 15:03:33 EST 2006
User: msurtani
Date: 06/11/10 15:03:33
Modified: src/org/jboss/cache/interceptors Tag:
Branch_JBossCache_1_4_0
OptimisticValidatorInterceptor.java
OptimisticLockingInterceptor.java
ReplicationInterceptor.java
OptimisticNodeInterceptor.java
OptimisticReplicationInterceptor.java
Log:
fixed concurrency deadlocks when buddies start up
Revision Changes Path
No revision
No revision
1.25.2.2 +13 -5 JBossCache/src/org/jboss/cache/interceptors/OptimisticValidatorInterceptor.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: OptimisticValidatorInterceptor.java
===================================================================
RCS file: /cvsroot/jboss/JBossCache/src/org/jboss/cache/interceptors/OptimisticValidatorInterceptor.java,v
retrieving revision 1.25.2.1
retrieving revision 1.25.2.2
diff -u -b -r1.25.2.1 -r1.25.2.2
--- OptimisticValidatorInterceptor.java 8 Aug 2006 12:21:22 -0000 1.25.2.1
+++ OptimisticValidatorInterceptor.java 10 Nov 2006 20:03:33 -0000 1.25.2.2
@@ -6,16 +6,21 @@
*/
package org.jboss.cache.interceptors;
-import org.jboss.cache.*;
-import org.jboss.cache.marshall.MethodDeclarations;
+import org.jboss.cache.CacheException;
+import org.jboss.cache.DataNode;
+import org.jboss.cache.Fqn;
+import org.jboss.cache.GlobalTransaction;
+import org.jboss.cache.InvocationContext;
+import org.jboss.cache.OptimisticTreeNode;
+import org.jboss.cache.TreeCache;
import org.jboss.cache.marshall.JBCMethodCall;
+import org.jboss.cache.marshall.MethodDeclarations;
+import org.jboss.cache.optimistic.DefaultDataVersion;
import org.jboss.cache.optimistic.TransactionWorkspace;
import org.jboss.cache.optimistic.WorkspaceNode;
-import org.jboss.cache.optimistic.DefaultDataVersion;
import org.jgroups.blocks.MethodCall;
import javax.transaction.Transaction;
-import java.lang.reflect.Method;
import java.util.Collection;
import java.util.Iterator;
import java.util.Map;
@@ -52,7 +57,10 @@
Transaction tx = ctx.getTransaction();
GlobalTransaction gtx = ctx.getGlobalTransaction();
Object retval = null;
- Method meth = m.getMethod();
+
+ // bypass for buddy group org metod calls.
+ if (isBuddyGroupOrganisationMethod(m)) return super.invoke(m);
+
if (tx == null)
throw new CacheException("Not in a transaction");
1.16.2.1 +4 -0 JBossCache/src/org/jboss/cache/interceptors/OptimisticLockingInterceptor.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: OptimisticLockingInterceptor.java
===================================================================
RCS file: /cvsroot/jboss/JBossCache/src/org/jboss/cache/interceptors/OptimisticLockingInterceptor.java,v
retrieving revision 1.16
retrieving revision 1.16.2.1
diff -u -b -r1.16 -r1.16.2.1
--- OptimisticLockingInterceptor.java 6 Jun 2006 10:17:14 -0000 1.16
+++ OptimisticLockingInterceptor.java 10 Nov 2006 20:03:33 -0000 1.16.2.1
@@ -45,6 +45,10 @@
Object retval = null;
Method meth = m.getMethod();
+ // bypass for buddy group org metod calls.
+ if (isBuddyGroupOrganisationMethod(m)) return super.invoke(m);
+
+
// bail out if _lock() is being called on the tree cache... this should never be called with o/l enabled.
if (m.getMethodId() == MethodDeclarations.lockMethodLocal_id)
{
1.32.2.1 +6 -1 JBossCache/src/org/jboss/cache/interceptors/ReplicationInterceptor.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: ReplicationInterceptor.java
===================================================================
RCS file: /cvsroot/jboss/JBossCache/src/org/jboss/cache/interceptors/ReplicationInterceptor.java,v
retrieving revision 1.32
retrieving revision 1.32.2.1
diff -u -b -r1.32 -r1.32.2.1
--- ReplicationInterceptor.java 12 Jun 2006 20:24:31 -0000 1.32
+++ ReplicationInterceptor.java 10 Nov 2006 20:03:33 -0000 1.32.2.1
@@ -16,17 +16,22 @@
* 'side-ways' (see docs/design/Refactoring.txt).
*
* @author Bela Ban
- * @version $Id: ReplicationInterceptor.java,v 1.32 2006/06/12 20:24:31 msurtani Exp $
+ * @version $Id: ReplicationInterceptor.java,v 1.32.2.1 2006/11/10 20:03:33 msurtani Exp $
*/
public class ReplicationInterceptor extends BaseRpcInterceptor
{
public Object invoke(MethodCall call) throws Throwable
{
+
JBCMethodCall m = (JBCMethodCall) call;
InvocationContext ctx = getInvocationContext();
GlobalTransaction gtx = ctx.getGlobalTransaction();
+ // bypass for buddy group org metod calls.
+ if (isBuddyGroupOrganisationMethod(m)) return super.invoke(m);
+
+
boolean isLocalCommitOrRollback = gtx != null && !gtx.isRemote() && (m.getMethodId() == MethodDeclarations.commitMethod_id || m.getMethodId() == MethodDeclarations.rollbackMethod_id);
1.21.2.3 +4 -0 JBossCache/src/org/jboss/cache/interceptors/OptimisticNodeInterceptor.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: OptimisticNodeInterceptor.java
===================================================================
RCS file: /cvsroot/jboss/JBossCache/src/org/jboss/cache/interceptors/OptimisticNodeInterceptor.java,v
retrieving revision 1.21.2.2
retrieving revision 1.21.2.3
diff -u -b -r1.21.2.2 -r1.21.2.3
--- OptimisticNodeInterceptor.java 13 Sep 2006 10:38:22 -0000 1.21.2.2
+++ OptimisticNodeInterceptor.java 10 Nov 2006 20:03:33 -0000 1.21.2.3
@@ -49,6 +49,10 @@
Method meth = m.getMethod();
Object[] args = m.getArgs();
+ // bypass for buddy group org metod calls.
+ if (isBuddyGroupOrganisationMethod(m)) return super.invoke(m);
+
+
Object result = null;
GlobalTransaction gtx = ctx.getGlobalTransaction();
1.21.2.1 +3 -0 JBossCache/src/org/jboss/cache/interceptors/OptimisticReplicationInterceptor.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: OptimisticReplicationInterceptor.java
===================================================================
RCS file: /cvsroot/jboss/JBossCache/src/org/jboss/cache/interceptors/OptimisticReplicationInterceptor.java,v
retrieving revision 1.21
retrieving revision 1.21.2.1
diff -u -b -r1.21 -r1.21.2.1
--- OptimisticReplicationInterceptor.java 12 Jun 2006 20:24:31 -0000 1.21
+++ OptimisticReplicationInterceptor.java 10 Nov 2006 20:03:33 -0000 1.21.2.1
@@ -44,6 +44,9 @@
JBCMethodCall m = (JBCMethodCall) call;
InvocationContext ctx = getInvocationContext();
Option optionOverride = ctx.getOptionOverrides();
+ // bypass for buddy group org metod calls.
+ if (isBuddyGroupOrganisationMethod(m)) return super.invoke(m);
+
if (optionOverride != null && optionOverride.isCacheModeLocal() && ctx.getTransaction() == null)
{
// skip replication!!
More information about the jboss-cvs-commits
mailing list