avalon-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dona...@apache.org
Subject cvs commit: jakarta-avalon-excalibur/container/src/java/org/apache/excalibur/container/legacy ComponentProxyGenerator.java
Date Sat, 09 Nov 2002 03:56:32 GMT
donaldp     2002/11/08 19:56:32

  Modified:    container/src/java/org/apache/excalibur/container/legacy
                        ComponentProxyGenerator.java
  Log:
  Make sure invocationHandler will only throw exceptions that the original method could throw.
  
  Other exceptions will not be thrown (ie IllegalAccess) due to the architecture of proxying
  
  Revision  Changes    Path
  1.6       +21 -5     jakarta-avalon-excalibur/container/src/java/org/apache/excalibur/container/legacy/ComponentProxyGenerator.java
  
  Index: ComponentProxyGenerator.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/container/src/java/org/apache/excalibur/container/legacy/ComponentProxyGenerator.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ComponentProxyGenerator.java	7 Nov 2002 05:18:31 -0000	1.5
  +++ ComponentProxyGenerator.java	9 Nov 2002 03:56:32 -0000	1.6
  @@ -58,6 +58,7 @@
   import java.lang.reflect.InvocationHandler;
   import java.lang.reflect.Method;
   import java.lang.reflect.Proxy;
  +import java.lang.reflect.InvocationTargetException;
   import org.apache.avalon.framework.component.Component;
   
   /**
  @@ -108,19 +109,34 @@
       /**
        * Internal class to handle the wrapping with Component
        */
  -    private final static class ComponentInvocationHandler implements InvocationHandler
  +    private final static class ComponentInvocationHandler
  +        implements InvocationHandler
       {
           private final Object m_delagate;
   
  -        public ComponentInvocationHandler( final Object proxy )
  +        public ComponentInvocationHandler( final Object delegate )
           {
  -            m_delagate = proxy;
  +            if( null == delegate )
  +            {
  +                throw new NullPointerException( "delegate" );
  +            }
  +
  +            m_delagate = delegate;
           }
   
  -        public Object invoke( Object proxy, Method meth, Object[] args )
  +        public Object invoke( final Object proxy,
  +                              final Method meth,
  +                              final Object[] args )
               throws Throwable
           {
  -            return meth.invoke( m_delagate, args );
  +            try
  +            {
  +                return meth.invoke( m_delagate, args );
  +            }
  +            catch( final InvocationTargetException ite )
  +            {
  +                throw ite.getTargetException();
  +            }
           }
       }
   }
  
  
  

--
To unsubscribe, e-mail:   <mailto:avalon-cvs-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:avalon-cvs-help@jakarta.apache.org>


Mime
View raw message