[jboss-cvs] JBossCache/src-50/org/jboss/cache/pojo/interceptors ...

Ben Wang bwang at jboss.com
Tue Oct 10 06:49:55 EDT 2006


  User: bwang   
  Date: 06/10/10 06:49:55

  Modified:    src-50/org/jboss/cache/pojo/interceptors 
                        PojoTxUndoInterceptor.java
  Log:
  First cut for JBCACHE-763 transaction rollback problem for collection.
  
  Revision  Changes    Path
  1.5       +21 -1     JBossCache/src-50/org/jboss/cache/pojo/interceptors/PojoTxUndoInterceptor.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: PojoTxUndoInterceptor.java
  ===================================================================
  RCS file: /cvsroot/jboss/JBossCache/src-50/org/jboss/cache/pojo/interceptors/PojoTxUndoInterceptor.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -b -r1.4 -r1.5
  --- PojoTxUndoInterceptor.java	17 Sep 2006 05:58:30 -0000	1.4
  +++ PojoTxUndoInterceptor.java	10 Oct 2006 10:49:55 -0000	1.5
  @@ -10,17 +10,19 @@
   import org.jboss.cache.pojo.MethodDeclarations;
   import org.jboss.cache.pojo.PojoTxSynchronizationHandler;
   import org.jboss.cache.pojo.util.MethodCall;
  +import org.jboss.cache.Fqn;
   import org.jboss.aop.joinpoint.Invocation;
   import org.jboss.aop.joinpoint.MethodInvocation;
   import java.lang.reflect.Method;
   import java.lang.reflect.Field;
  +import java.util.List;
   
   /**
    * Interceptor (done via aop advice) for transaction rollback. This is is attached to the
    * operation that needs a corresponding rollback, e.g., attachInterceptor.
    *
    * @author Ben Wang
  - * @version $Id: PojoTxUndoInterceptor.java,v 1.4 2006/09/17 05:58:30 bwang Exp $
  + * @version $Id: PojoTxUndoInterceptor.java,v 1.5 2006/10/10 10:49:55 bwang Exp $
    */
   public class PojoTxUndoInterceptor extends AbstractInterceptor
   {
  @@ -68,6 +70,24 @@
            Object[] args = new Object[] { obj, field, oldValue };
            MethodCall mc = new MethodCall(method, args, invocation.getTargetObject());
            handler.addToList(mc);
  +      } else if ( methodName.equals(MethodDeclarations.incrementReferenceCount.getName()))
  +      {
  +         Method method = MethodDeclarations.undoIncrementReferenceCount;
  +         Fqn fqn = (Fqn)invocation.getArguments()[0];
  +         int count = (Integer)invocation.getArguments()[1];
  +         List referenceList = (List)invocation.getArguments()[2];
  +         Object[] args = new Object[] { fqn, count, referenceList };
  +         MethodCall mc = new MethodCall(method, args, invocation.getTargetObject());
  +         handler.addToList(mc);
  +      } else if ( methodName.equals(MethodDeclarations.decrementReferenceCount.getName()))
  +      {
  +         Method method = MethodDeclarations.undoDecrementReferenceCount;
  +         Fqn fqn = (Fqn)invocation.getArguments()[0];
  +         int count = (Integer)invocation.getArguments()[1];
  +         List referenceList = (List)invocation.getArguments()[2];
  +         Object[] args = new Object[] { fqn, count, referenceList };
  +         MethodCall mc = new MethodCall(method, args, invocation.getTargetObject());
  +         handler.addToList(mc);
         } else
         {
            throw new RuntimeException("PojoTxUndoInterceptor: invalid invocation name: " +methodName);
  
  
  



More information about the jboss-cvs-commits mailing list