[jboss-cvs] jboss-seam/src/main/org/jboss/seam/intercept ...

Gavin King gavin.king at jboss.com
Fri Oct 13 13:41:57 EDT 2006


  User: gavin   
  Date: 06/10/13 13:41:57

  Modified:    src/main/org/jboss/seam/intercept   
                        ClientSideInterceptor.java JavaBeanInterceptor.java
                        SessionBeanInterceptor.java
  Log:
  handle this references correctly in interceptors
  
  Revision  Changes    Path
  1.4       +19 -8     jboss-seam/src/main/org/jboss/seam/intercept/ClientSideInterceptor.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: ClientSideInterceptor.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/intercept/ClientSideInterceptor.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -b -r1.3 -r1.4
  --- ClientSideInterceptor.java	13 Oct 2006 04:04:48 -0000	1.3
  +++ ClientSideInterceptor.java	13 Oct 2006 17:41:57 -0000	1.4
  @@ -1,4 +1,4 @@
  -//$Id: ClientSideInterceptor.java,v 1.3 2006/10/13 04:04:48 gavin Exp $
  +//$Id: ClientSideInterceptor.java,v 1.4 2006/10/13 17:41:57 gavin Exp $
   package org.jboss.seam.intercept;
   
   import java.lang.reflect.Method;
  @@ -33,6 +33,8 @@
            final MethodProxy methodProxy) throws Throwable
      {
         String methodName = method.getName();
  +      if ( params!=null && params.length==0 )
  +      {
         if ( "finalize".equals(methodName) )
         {
            return methodProxy.invokeSuper(proxy, params);
  @@ -41,7 +43,16 @@
         {
            return this;
         }
  -      return interceptInvocation(method, params, methodProxy);
  +      }
  +      Object result = interceptInvocation(method, params, methodProxy);
  +      return sessionBeanReturnedThis(result) ? proxy : result;
  +   }
  +
  +   private boolean sessionBeanReturnedThis(Object result)
  +   {
  +      return result==bean || (
  +            result!=null && getComponent().getBeanClass().isAssignableFrom( result.getClass() )
  +         );
      }
   
      private Object interceptInvocation(final Method method, final Object[] params, final MethodProxy methodProxy) throws Exception
  
  
  
  1.5       +3 -2      jboss-seam/src/main/org/jboss/seam/intercept/JavaBeanInterceptor.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: JavaBeanInterceptor.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/intercept/JavaBeanInterceptor.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -b -r1.4 -r1.5
  --- JavaBeanInterceptor.java	13 Oct 2006 16:34:30 -0000	1.4
  +++ JavaBeanInterceptor.java	13 Oct 2006 17:41:57 -0000	1.5
  @@ -1,4 +1,4 @@
  -//$Id: JavaBeanInterceptor.java,v 1.4 2006/10/13 16:34:30 gavin Exp $
  +//$Id: JavaBeanInterceptor.java,v 1.5 2006/10/13 17:41:57 gavin Exp $
   package org.jboss.seam.intercept;
   
   import java.lang.reflect.Method;
  @@ -66,7 +66,8 @@
         //TODO: we could support an @ReadOnly annotation
         dirty = true; 
            
  -      return interceptInvocation(method, params, methodProxy);
  +      Object result = interceptInvocation(method, params, methodProxy);
  +      return result==bean ? proxy : result;
   
      }
   
  
  
  
  1.3       +0 -1      jboss-seam/src/main/org/jboss/seam/intercept/SessionBeanInterceptor.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: SessionBeanInterceptor.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/intercept/SessionBeanInterceptor.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -b -r1.2 -r1.3
  --- SessionBeanInterceptor.java	10 Oct 2006 18:12:31 -0000	1.2
  +++ SessionBeanInterceptor.java	13 Oct 2006 17:41:57 -0000	1.3
  @@ -13,7 +13,6 @@
   import org.jboss.seam.InterceptorType;
   import org.jboss.seam.Seam;
   import org.jboss.seam.annotations.Name;
  -import org.jboss.seam.intercept.RootInterceptor;
   
   /**
    * Controller interceptor for server-side interceptors of
  
  
  



More information about the jboss-cvs-commits mailing list