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]>