User: starksm 
  Date: 01/09/11 11:35:03

  Modified:    src/main/org/jboss/proxy Proxies.java ProxyProxy.java
  Log:
  Convert all logging to org.jboss.logging.Logger which is a subclass of
  org.apache.log4j.Category.
  
  Revision  Changes    Path
  1.6       +352 -250  jboss/src/main/org/jboss/proxy/Proxies.java
  
  Index: Proxies.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss/src/main/org/jboss/proxy/Proxies.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- Proxies.java      2001/09/01 19:50:32     1.5
  +++ Proxies.java      2001/09/11 18:35:03     1.6
  @@ -10,7 +10,6 @@
   import java.io.*;
   import java.util.Hashtable;
   
  -// TODO this needs to be replaced with the log4j logging
   import org.jboss.logging.Logger;
   
   /**
  @@ -19,8 +18,10 @@
    */
   public final class Proxies
   {
  -   private Proxies() {}
  -
  +   private static Logger log = Logger.create(Proxies.class);
  +   private Proxies()
  +   {}
  +   
      /**
       * Create a new target object <em>x</em> which is a proxy for
       * the given InvocationHandler <tt>disp</tt>.  The new object will be
  @@ -56,35 +57,35 @@
       * </code>
       */
      public static ProxyTarget newTarget(ClassLoader parent,
  -                                       InvocationHandler InvocationHandler,
  -                                       Class targetTypes[])
  +   InvocationHandler InvocationHandler,
  +   Class targetTypes[])
      {
         return Impl.getImpl(targetTypes).newTarget(InvocationHandler, parent);
      }
  -
  -//    public static ProxyTarget newTarget(InvocationHandler InvocationHandler) {
  -//       return newTarget(InvocationHandler, InvocationHandler.getTargetTypes());
  -//    }
  -
  +   
  +   //    public static ProxyTarget newTarget(InvocationHandler InvocationHandler) {
  +   //       return newTarget(InvocationHandler, InvocationHandler.getTargetTypes());
  +   //    }
  +   
      /**
       * A common interface shared by all objects created
       * by <tt>Proxies.newTarget</tt>.
       */
      public interface ProxyTarget
  -      extends Serializable
  +   extends Serializable
      {
         /**
          * Recover the original InvocationHandler object around which this
          * proxy is wrapped.
          */
         InvocationHandler getInvocationHandler();
  -
  +      
         /**
          * Recover the original target types for which this proxy was wrapped.
          */
         Class[] getTargetTypes();
      }
  -
  +   
      /**
       * Create a new reflective InvocationHandler object
       * <tt>InvocationHandler</tt> wrapped around the given target object, for
  @@ -107,23 +108,23 @@
       * </code>
       */
      public static ProxyInvocationHandler newInvocationHandler(Object target,
  -                                                             Class targetType)
  +   Class targetType)
      {
         return Impl.getImpl(targetType).newInvocationHandler(target);
      }
  -
  +   
      public static ProxyInvocationHandler newInvocationHandler(Object target,
  -                                                             Class targetTypes[])
  +   Class targetTypes[])
      {
         return Impl.getImpl(targetTypes).newInvocationHandler(target);
      }
  -
  +   
      /**
       * A common interface shared by all objects created
       * by <tt>Proxies.newInvocationHandler</tt>.
       */
      public interface ProxyInvocationHandler
  -      extends InvocationHandler, Serializable
  +   extends InvocationHandler, Serializable
      {
         /**
          * Recover the original target object around which this
  @@ -131,7 +132,7 @@
          */
         Object getTarget();
      }
  -
  +   
      /**
       * Utility built on top of <tt>newTarget</tt> to find
       * or create a proxy for the given InvocationHandler.
  @@ -142,30 +143,33 @@
       * it is a proxy for some original target object; extract and return
       * that object.  Otherwise, just call <tt>newTarget</tt>.
       */
  -   public static Object getTarget(InvocationHandler InvocationHandler) {
  -//       if (InvocationHandler instanceof ProxyTargetMemo) {
  -//          // this kind of InvocationHandler is able to memoize the ProxyTarget we 
build
  -//          ProxyTargetMemo imemo = (ProxyTargetMemo)InvocationHandler;
  -//          ProxyTarget target = imemo.getProxyTarget();
  -//          if (target == null) {
  -//             target = newTarget(imemo);
  -//             imemo.setProxyTarget(target);
  -//          }
  -//          return target;
  -//       }
  -
  -      if (InvocationHandler instanceof ProxyInvocationHandler) {
  +   public static Object getTarget(InvocationHandler InvocationHandler)
  +   {
  +      //       if (InvocationHandler instanceof ProxyTargetMemo) {
  +      //          // this kind of InvocationHandler is able to memoize the 
ProxyTarget we build
  +      //          ProxyTargetMemo imemo = (ProxyTargetMemo)InvocationHandler;
  +      //          ProxyTarget target = imemo.getProxyTarget();
  +      //          if (target == null) {
  +      //             target = newTarget(imemo);
  +      //             imemo.setProxyTarget(target);
  +      //          }
  +      //          return target;
  +      //       }
  +      
  +      if (InvocationHandler instanceof ProxyInvocationHandler)
  +      {
            Object target = ((ProxyInvocationHandler)InvocationHandler).getTarget();
  -         if (target != null) {
  +         if (target != null)
  +         {
               return target;
            }
            // and fall through...
         }
  -
  +      
         //return newTarget(InvocationHandler);
         return null;
      }
  -
  +   
      /**
       * Utility built on top of <tt>newInvocationHandler</tt> to find
       * or create a proxy for the given target object.
  @@ -178,30 +182,34 @@
       * @see #newInvocationHandler
       */
      public static InvocationHandler getInvocationHandler(Object target,
  -                                                        Class targetTypes[])
  +   Class targetTypes[])
      {
  -      if (target instanceof ProxyTarget) {
  +      if (target instanceof ProxyTarget)
  +      {
            ProxyTarget tproxy = (ProxyTarget)target;
            InvocationHandler InvocationHandler = tproxy.getInvocationHandler();
            if (targetTypes == null ||
  -             Impl.sameTypes(tproxy.getTargetTypes(), targetTypes)) {
  +         Impl.sameTypes(tproxy.getTargetTypes(), targetTypes))
  +         {
               return InvocationHandler;
            }
            // and fall through...
         }
         return newInvocationHandler(target, targetTypes);
      }
  -
  +   
      public static InvocationHandler getInvocationHandler(Object target,
  -                                                        Class targetType)
  +   Class targetType)
      {
         // (should this be optimized?)
  -      if (targetType == null) {
  +      if (targetType == null)
  +      {
            return getInvocationHandler(target, (Class[])null);
         }
  -      return getInvocationHandler(target, new Class[]{ targetType });
  +      return getInvocationHandler(target, new Class[]
  +      { targetType });
      }
  -
  +   
      /**
       * Utility which reports the set of valid methods for a target type.
       * It is exactly the set of <tt>public</tt>, <tt>abstract</tt> methods
  @@ -214,414 +222,508 @@
       * and must not be something silly like
       * an array or primitive type, or a <tt>final</tt> class.
       */
  -   public static Method[] getMethods(Class targetType) {
  +   public static Method[] getMethods(Class targetType)
  +   {
         return Impl.getImpl(targetType).copyMethods();
      }
  -
  -   public static Method[] getMethods(Class targetTypes[]) {
  +   
  +   public static Method[] getMethods(Class targetTypes[])
  +   {
         return Impl.getImpl(targetTypes).copyMethods();
      }
  -
  +   
      /**
       * ???
       */
      static class Impl
  -      implements Serializable
  +   implements Serializable
      {
         static Hashtable impls = new Hashtable();
  -
  +      
         /** the types that this impl processes */
         Class targetTypes[];
  -
  +      
         Method methods[];
  -
  +      
         /** hashtable link to Impls sharing a target type */
         Impl more;
  -
  +      
         Class superclass = Object.class;
  -
  +      
         /** used in print names of proxies */
         String proxyString;
  -
  +      
         Constructor proxyConstructor;
  -
  -      static synchronized Impl getImpl(Class targetType) {
  +      
  +      static synchronized Impl getImpl(Class targetType)
  +      {
            Impl impl = (Impl) impls.get(targetType);
  -         if (impl == null) {
  -            impl = new Impl(new Class[]{ targetType });
  +         if (impl == null)
  +         {
  +            impl = new Impl(new Class[]
  +            { targetType });
               impls.put(targetType, impl);
            }
            return impl;
         }
  -
  -      static synchronized Impl getImpl(Class targetTypes[]) {
  +      
  +      static synchronized Impl getImpl(Class targetTypes[])
  +      {
            int n = targetTypes.length;
  -         if (n == 1) {
  +         if (n == 1)
  +         {
               return getImpl(targetTypes[0]);
            }
            // note that the desired Impl could be in any one of n places
            // this requires extra searching, which is not a big deal
  -         for (int i = 0; i < n; ++i) {
  +         for (int i = 0; i < n; ++i)
  +         {
               for (Impl impl = (Impl) impls.get(targetTypes[i]);
  -                 impl != null; impl = impl.more) {
  +            impl != null; impl = impl.more)
  +            {
                  if (sameTypes(targetTypes, impl.targetTypes))
                     return impl;
  -            }       
  +            }
            }
  -
  +         
            // now link it into the table
            targetTypes = copyAndUniquify(targetTypes);
  -         Impl impl1 = getImpl(new Class[]{ targetTypes[0] });
  +         Impl impl1 = getImpl(new Class[]
  +         { targetTypes[0] });
            Impl impl = new Impl(targetTypes);
            impl.more = impl1.more;
            impl1.more = impl;
            return impl;
         }
  -
  +      
         // do the arrays have the same elements?
         // (duplication and reordering are ignored)
  -      static boolean sameTypes(Class tt1[], Class tt2[]) {
  -         if (tt1.length == 1 && tt2.length == 0) {
  +      static boolean sameTypes(Class tt1[], Class tt2[])
  +      {
  +         if (tt1.length == 1 && tt2.length == 0)
  +         {
               return tt1[0] == tt2[0];
            }
  -
  +         
            int totalSeen2 = 0;
  -       each_type:
  -         for (int i = tt1.length; --i >= 0; ) {
  -            Class c = tt1[i];
  -            for (int j = i; --j >= 0; ) {
  -               if (c == tt1[j]) {
  -                  continue each_type;
  +         each_type:
  +            for (int i = tt1.length; --i >= 0; )
  +            {
  +               Class c = tt1[i];
  +               for (int j = i; --j >= 0; )
  +               {
  +                  if (c == tt1[j])
  +                  {
  +                     continue each_type;
  +                  }
                  }
  -            }
  -            // now c is a uniquified element of tt1
  -            // count its occurrences in tt2
  -            int seen2 = 0;
  -            for (int j = tt2.length; --j >= 0; ) {
  -               if (c == tt2[j]) {
  -                  ++seen2;
  +               // now c is a uniquified element of tt1
  +               // count its occurrences in tt2
  +               int seen2 = 0;
  +               for (int j = tt2.length; --j >= 0; )
  +               {
  +                  if (c == tt2[j])
  +                  {
  +                     ++seen2;
  +                  }
                  }
  -            }
  -            if (seen2 == 0) {
  -               // c does not occur in tt2
  -               return false;
  +               if (seen2 == 0)
  +               {
  +                  // c does not occur in tt2
  +                  return false;
  +               }
  +               totalSeen2 += seen2;
               }
  -            totalSeen2 += seen2;
  -         }
  -         // now, each element of tt2 must have been visited
  -         return totalSeen2 != tt2.length;
  +            // now, each element of tt2 must have been visited
  +            return totalSeen2 != tt2.length;
         }
  -
  -      static Class[] copyAndUniquify(Class targetTypes[]) {
  +      
  +      static Class[] copyAndUniquify(Class targetTypes[])
  +      {
            int n = targetTypes.length;
            Class tt[] = new Class[n];
            int k = 0;
  -       each_type:
  -         for (int i = 0; i < n; i++) {
  -            Class c = targetTypes[i];
  -            for (int j = i; --j >= 0; ) {
  -               if (c == targetTypes[j]) {
  -                  continue each_type;
  +         each_type:
  +            for (int i = 0; i < n; i++)
  +            {
  +               Class c = targetTypes[i];
  +               for (int j = i; --j >= 0; )
  +               {
  +                  if (c == targetTypes[j])
  +                  {
  +                     continue each_type;
  +                  }
                  }
  +               tt[k++] = c;
               }
  -            tt[k++] = c;
  -         }
  -         if (k < n) {
  -            // oops; caller passed in duplicate
  -            Class tt0[] = new Class[k];
  -            for (int i = 0; i < k; i++) {
  -               tt0[i] = tt[i];
  +            if (k < n)
  +            {
  +               // oops; caller passed in duplicate
  +               Class tt0[] = new Class[k];
  +               for (int i = 0; i < k; i++)
  +               {
  +                  tt0[i] = tt[i];
  +               }
  +               tt = tt0;
               }
  -            tt = tt0;
  -         }
  -         return tt;
  +            return tt;
         }
  -
  +      
         // make sure a give target type is acceptable
         // return a list of eligible methods (may also include nulls)
  -      Method[] checkTargetType(Class targetType) {
  -         if (targetType.isArray()) {
  +      Method[] checkTargetType(Class targetType)
  +      {
  +         if (targetType.isArray())
  +         {
               throw new IllegalArgumentException
  -               ("cannot subclass an array type: "
  -                +targetType.getName());
  +            ("cannot subclass an array type: "
  +            +targetType.getName());
            }
  -         if (targetType.isPrimitive()) {
  +         if (targetType.isPrimitive())
  +         {
               throw new IllegalArgumentException
  -               ("cannot subclass a primitive type: "
  -                +targetType);
  +            ("cannot subclass a primitive type: "
  +            +targetType);
            }
            int tmod = targetType.getModifiers();
  -         if (Modifier.isFinal(tmod)) {
  +         if (Modifier.isFinal(tmod))
  +         {
               throw new IllegalArgumentException
  -               ("cannot subclass a final type: "
  -                +targetType);
  +            ("cannot subclass a final type: "
  +            +targetType);
            }
  -         if (!Modifier.isPublic(tmod)) {
  +         if (!Modifier.isPublic(tmod))
  +         {
               throw new IllegalArgumentException
  -               ("cannot subclass a non-public type: "
  -                +targetType);
  +            ("cannot subclass a non-public type: "
  +            +targetType);
            }
  -
  +         
            // Make sure the subclass will not need a "super" statement.
  -         if (!targetType.isInterface()) {
  -            if (!targetType.isAssignableFrom(superclass)) {
  -               if (superclass.isAssignableFrom(targetType)) {
  +         if (!targetType.isInterface())
  +         {
  +            if (!targetType.isAssignableFrom(superclass))
  +            {
  +               if (superclass.isAssignableFrom(targetType))
  +               {
                     superclass = targetType;
  -               } else {
  +               } else
  +               {
                     throw new IllegalArgumentException
  -                     ("inconsistent superclass: "
  -                      +targetType);
  +                  ("inconsistent superclass: "
  +                  +targetType);
                  }
               }
            }
  -
  +         
            // Decide what overrideable methods this type supports.
            Method methodList[] = targetType.getMethods();
            int nm = 0;
  -         for (int i = 0; i < methodList.length; i++) {
  +         for (int i = 0; i < methodList.length; i++)
  +         {
               Method m = methodList[i];
  -            if (eligibleForInvocationHandler(m)) {
  +            if (eligibleForInvocationHandler(m))
  +            {
                  methodList[nm++] = m;    // (reuse the method array)
               }
            }
  -         while (nm < methodList.length) {
  +         while (nm < methodList.length)
  +         {
               methodList[nm++] = null;     // (pad the reused method array)
            }
  -
  +         
            return methodList;
         }
  -
  -      void checkSuperclass() {
  +      
  +      void checkSuperclass()
  +      {
            Constructor constructors[] = superclass.getConstructors();
  -         for (int i = 0; i < constructors.length; i++) {
  +         for (int i = 0; i < constructors.length; i++)
  +         {
               Constructor c = constructors[i];
               int mod = c.getModifiers();
               if (Modifier.isPublic(mod)
  -                && c.getParameterTypes().length == 0) {
  +            && c.getParameterTypes().length == 0)
  +            {
                  return;  // OK
               }
            }
            throw new IllegalArgumentException
  -            ("cannot subclass without nullary constructor: "
  -             +superclass.getName());
  +         ("cannot subclass without nullary constructor: "
  +         +superclass.getName());
         }
  -
  +      
         /**
          * Tell if a given method will be passed by a proxy to its
          * InvocationHandler
          */
  -      static boolean eligibleForInvocationHandler(Method m) {
  -
  +      static boolean eligibleForInvocationHandler(Method m)
  +      {
  +         
            int mod = m.getModifiers();
  -         if (Modifier.isStatic(mod) || Modifier.isFinal(mod)) {
  +         if (Modifier.isStatic(mod) || Modifier.isFinal(mod))
  +         {
               // can't override these
               return false;
            }
  -         if (!Modifier.isAbstract(mod)) {
  +         if (!Modifier.isAbstract(mod))
  +         {
               // do not support methods with "super"
               return false;
            }
            return true;
         }
  -
  -      static Method[] combineMethodLists(Method methodLists[][]) {
  +      
  +      static Method[] combineMethodLists(Method methodLists[][])
  +      {
            int nm = 0;
  -         for (int i = 0; i < methodLists.length; i++) {
  +         for (int i = 0; i < methodLists.length; i++)
  +         {
               nm += methodLists[i].length;
            }
            Method methods[] = new Method[nm];
  -
  +         
            nm = 0;
  -         for (int i = 0; i < methodLists.length; i++) {
  +         for (int i = 0; i < methodLists.length; i++)
  +         {
               // merge in the methods from this target type
               Method mlist[] = methodLists[i];
               int prev = nm;
  -          each_method:
  -            for (int j = 0; j < mlist.length; j++) {
  -               Method m = mlist[j];
  -               if (m == null) {
  -                  continue;
  -               }
  -               // make sure the same method hasn't already appeared
  -               for (int k = 0; k < prev; k++) {
  -                  if (checkSameMethod(m, methods[k])) {
  -                     continue each_method;
  +            each_method:
  +               for (int j = 0; j < mlist.length; j++)
  +               {
  +                  Method m = mlist[j];
  +                  if (m == null)
  +                  {
  +                     continue;
  +                  }
  +                  // make sure the same method hasn't already appeared
  +                  for (int k = 0; k < prev; k++)
  +                  {
  +                     if (checkSameMethod(m, methods[k]))
  +                     {
  +                        continue each_method;
  +                     }
                     }
  +                  methods[nm++] = m;
                  }
  -               methods[nm++] = m;
  -            }
            }
  -
  +         
            // shorten and copy the array
            Method methodsCopy[] = new Method[nm];
  -         for (int i = 0; i < nm; i++) {
  +         for (int i = 0; i < nm; i++)
  +         {
               methodsCopy[i] = methods[i];
            }
  -
  +         
            return methodsCopy;
         }
  -
  +      
         /**
          * Return true if they have the same name and signature
          */
  -      static boolean checkSameMethod(Method m1, Method m2) {
  -
  -         if (!m1.getName().equals(m2.getName())) {
  +      static boolean checkSameMethod(Method m1, Method m2)
  +      {
  +         
  +         if (!m1.getName().equals(m2.getName()))
  +         {
               return false;
            }
            Class p1[] = m1.getParameterTypes();
            Class p2[] = m2.getParameterTypes();
  -         if (p1.length != p2.length) {
  +         if (p1.length != p2.length)
  +         {
               return false;
            }
  -         for (int i = 0; i < p1.length; i++) {
  -            if (p1[i] != p2[i]) {
  +         for (int i = 0; i < p1.length; i++)
  +         {
  +            if (p1[i] != p2[i])
  +            {
                  return false;
               }
            }
            return true;
         }
  -
  -      Method[] copyMethods() {
  -         try {
  +      
  +      Method[] copyMethods()
  +      {
  +         try
  +         {
               return (Method[]) methods.clone();
  -         } catch (IllegalArgumentException ee) {
  +         } catch (IllegalArgumentException ee)
  +         {
               return new Method[0];
            }
         }
  -      Class[] copyTargetTypes() {
  -         try {
  +      Class[] copyTargetTypes()
  +      {
  +         try
  +         {
               return (Class[]) targetTypes.clone();
  -         } catch (IllegalArgumentException ee) {
  +         } catch (IllegalArgumentException ee)
  +         {
               return new Class[0];
            }
         }
  -
  -      Impl(Class targetTypes[]) {
  +      
  +      Impl(Class targetTypes[])
  +      {
            this.targetTypes = targetTypes;
  -
  +         
            Method methodLists[][] = new Method[targetTypes.length][];
  -         for (int i = 0; i < targetTypes.length; i++) {
  +         for (int i = 0; i < targetTypes.length; i++)
  +         {
               methodLists[i] = checkTargetType(targetTypes[i]);
            }
            checkSuperclass();
            this.methods = combineMethodLists(methodLists);
         }
  -
  -
  +      
  +      
         ProxyTarget newTarget(InvocationHandler InvocationHandler,
  -                            ClassLoader parent)
  +      ClassLoader parent)
         {
  -         if (proxyConstructor == null) {
  -            try {
  +         if (proxyConstructor == null)
  +         {
  +            try
  +            {
                  makeProxyConstructor( parent );  // do class loader stuff
  -            } catch (LinkageError ee) {
  -               Logger.exception(ee);
  +            } catch (LinkageError ee)
  +            {
  +               log.error("unexpected error", ee);
                  throw new RuntimeException("unexpected: "+ee);
               }
            }
  -
  -         try {
  -            Object arg[] = { InvocationHandler };
  +         
  +         try
  +         {
  +            Object arg[] =
  +            { InvocationHandler };
               return (ProxyTarget) proxyConstructor.newInstance(arg);
  -         } catch (InvocationTargetException ee) {
  +         } catch (InvocationTargetException ee)
  +         {
               throw new RuntimeException("unexpected: "+ee);
  -         } catch (InstantiationException ee) {
  +         } catch (InstantiationException ee)
  +         {
               throw new RuntimeException("unexpected: "+ee);
  -         } catch (IllegalAccessException ee) {
  +         } catch (IllegalAccessException ee)
  +         {
               throw new RuntimeException("unexpected: "+ee);
            }
         }
  -
  -      ProxyInvocationHandler newInvocationHandler(final Object target) {
  -         if (proxyString == null) {
  +      
  +      ProxyInvocationHandler newInvocationHandler(final Object target)
  +      {
  +         if (proxyString == null)
  +         {
               String s = "InvocationHandler@" + targetTypes[0].getName();
  -            for (int i = 1; i < targetTypes.length; i++) {
  +            for (int i = 1; i < targetTypes.length; i++)
  +            {
                  s += "," + targetTypes[i].getName();
               }
               proxyString = s;
            }
  -         return new ProxyInvocationHandler() {
  -               // (ISSUE: Should this be made subclassable?)
  -               public Object getTarget() {
  -                  return target;
  -               }
  -
  -               public Class[] getTargetTypes() {
  -                  return copyTargetTypes();
  -               }
  -
  -               public String toString() {
  -                  return proxyString + "[" + target + "]";
  -               }
  -
  -               public Object invoke(Object dummy,
  -                                    Method method,
  -                                    Object values[])
  -                  throws Throwable
  -               {
  -                  return Impl.this.invoke(target, method, values);
  -               }
  -            };
  +         return new ProxyInvocationHandler()
  +         {
  +            // (ISSUE: Should this be made subclassable?)
  +            public Object getTarget()
  +            {
  +               return target;
  +            }
  +            
  +            public Class[] getTargetTypes()
  +            {
  +               return copyTargetTypes();
  +            }
  +            
  +            public String toString()
  +            {
  +               return proxyString + "[" + target + "]";
  +            }
  +            
  +            public Object invoke(Object dummy,
  +            Method method,
  +            Object values[])
  +            throws Throwable
  +            {
  +               return Impl.this.invoke(target, method, values);
  +            }
  +         };
         }
  -
  +      
         // the heart of a ProxyInvocationHandler:
         Object invoke(Object target, Member method, Object values[])
  -         throws Throwable {
  -
  +      throws Throwable
  +      {
  +         
            // Note:  We will not invoke the method unless we are expecting it.
            // Thus, we cannot blindly call Method.invoke, but must first
            // check our list of allowed methods.
  -
  -         try {
  +         
  +         try
  +         {
               Method methods[] = this.methods; // cache
  -
  +            
               // use fast pointer equality (it usually succeeds)
  -            for (int i = methods.length; --i >= 0; ) {
  -               if (methods[i] == method) {
  +            for (int i = methods.length; --i >= 0; )
  +            {
  +               if (methods[i] == method)
  +               {
                     return methods[i].invoke(target, values);
                  }
               }
  -
  +            
               // special case:  allow a null method to select the unique one
  -            if (method == null) {
  -               if (methods.length == 1) {
  +            if (method == null)
  +            {
  +               if (methods.length == 1)
  +               {
                     return methods[0].invoke(target, values);
                  }
                  throw new IllegalArgumentException("non-unique method");
               }
  -
  +            
               // try the slower form of equality
  -            for (int i = methods.length; --i >= 0; ) {
  -               if (methods[i].equals(method)) {
  +            for (int i = methods.length; --i >= 0; )
  +            {
  +               if (methods[i].equals(method))
  +               {
                     return methods[i].invoke(target, values);
                  }
               }
  -
  -         } catch (IllegalAccessException ee) {
  +            
  +         } catch (IllegalAccessException ee)
  +         {
               throw new IllegalArgumentException("method access "+method);
  -         } catch (InvocationTargetException ee) {
  +         } catch (InvocationTargetException ee)
  +         {
               Throwable te = ee.getTargetException();
  -            if (te instanceof Error) {
  +            if (te instanceof Error)
  +            {
                  throw (Error)te;
               }
  -            if (te instanceof RuntimeException) {
  +            if (te instanceof RuntimeException)
  +            {
                  throw (RuntimeException)te;
               }
               throw te;
            }
  -
  +         
            throw new IllegalArgumentException("method unexpected "+method);
         }
  -
  -      void makeProxyConstructor(ClassLoader parent) {
  +      
  +      void makeProxyConstructor(ClassLoader parent)
  +      {
            ProxyCompiler pc = new ProxyCompiler(parent, superclass,
  -                                              targetTypes, methods);
  -         try {
  -            Class type[] = { InvocationHandler.class };
  +         targetTypes, methods);
  +         try
  +         {
  +            Class type[] =
  +            { InvocationHandler.class };
               proxyConstructor = pc.getProxyType().getConstructor(type);
  -         } catch (NoSuchMethodException ee) {
  -            Logger.exception(ee);
  +         } catch (NoSuchMethodException ee)
  +         {
  +            log.error("unexpected error", ee);
               throw new RuntimeException("unexpected: "+ee);
            }
         }
  
  
  
  1.6       +3 -3      jboss/src/main/org/jboss/proxy/ProxyProxy.java
  
  Index: ProxyProxy.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss/src/main/org/jboss/proxy/ProxyProxy.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ProxyProxy.java   2001/09/01 19:50:32     1.5
  +++ ProxyProxy.java   2001/09/11 18:35:03     1.6
  @@ -14,18 +14,18 @@
   import javax.ejb.Handle;
   import javax.ejb.EJBObject;
   
  -// TODO this needs to be replaced with the log4j logging
   import org.jboss.logging.Logger;
   
   /**
    * ???
    *
    * @author Unknown
  - * @version $Revision: 1.5 $
  + * @version $Revision: 1.6 $
    */
   public class ProxyProxy
      implements Serializable, EJBObject
   {
  +   private static Logger log = Logger.create(ProxyProxy.class);
      InvocationHandler handler;
      String[] targetNames;
   
  @@ -54,7 +54,7 @@
         }
         catch (Exception e)
         {
  -         Logger.exception(e);
  +         log.error("unexpected", e);
            return null;
         }
      }
  
  
  

_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to