colus       2002/12/02 17:34:09

  Modified:    fortress/src/java/org/apache/excalibur/fortress/handler
                        ProxyHelper.java
  Log:
  Fixes a bug where service interfaces in superclass were not proxied.
  
  Submitted by: Peter Donald <[EMAIL PROTECTED]>
  
  Revision  Changes    Path
  1.3       +18 -2     
jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/handler/ProxyHelper.java
  
  Index: ProxyHelper.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/handler/ProxyHelper.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ProxyHelper.java  9 Nov 2002 07:44:38 -0000       1.2
  +++ ProxyHelper.java  3 Dec 2002 01:34:09 -0000       1.3
  @@ -157,6 +157,23 @@
       private static Class[] guessWorkInterfaces( final Class clazz )
       {
           final ArrayList list = new ArrayList();
  +        guessWorkInterfaces( clazz, list );
  +
  +        list.add( Component.class );
  +        return (Class[])list.toArray( new Class[ list.size() ] );
  +    }
  +
  +    /**
  +     * Get a list of interfaces to proxy by scanning through
  +     * all interfaces a class implements and skipping invalid interfaces
  +     * (as defined in [EMAIL PROTECTED] #INVALID_INTERFACES}).
  +     *
  +     * @param clazz the class
  +     * @param list the list of current work interfaces 
  +     */
  +    private static void guessWorkInterfaces( final Class clazz,
  +                                             final ArrayList list )
  +    {
           final Class[] interfaces = clazz.getInterfaces();
   
           boolean skip = false;
  @@ -177,8 +194,7 @@
                   list.add( interfaces[ i ] );
               }
           }
  -        list.add( Component.class );
   
  -        return (Class[])list.toArray( new Class[ list.size() ] );
  +        guessWorkInterfaces( clazz.getSuperclass(),list );
       }
   }
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to