[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