You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2009/09/20 20:32:48 UTC

svn commit: r817075 - in /tomcat/trunk: java/org/apache/tomcat/util/ java/org/apache/tomcat/util/buf/ java/org/apache/tomcat/util/http/ test/org/apache/catalina/tribes/demos/

Author: markt
Date: Sun Sep 20 18:32:48 2009
New Revision: 817075

URL: http://svn.apache.org/viewvc?rev=817075&view=rev
Log:
Eclipse 3.5 has a new dead code detector. Fix various debug related logging issues found.
Update copy of IntrospectionUtils in test suite (it was quicker than porting the individual fixes)

Modified:
    tomcat/trunk/java/org/apache/tomcat/util/IntrospectionUtils.java
    tomcat/trunk/java/org/apache/tomcat/util/buf/B2CConverter.java
    tomcat/trunk/java/org/apache/tomcat/util/buf/UEncoder.java
    tomcat/trunk/java/org/apache/tomcat/util/http/Cookies.java
    tomcat/trunk/test/org/apache/catalina/tribes/demos/IntrospectionUtils.java

Modified: tomcat/trunk/java/org/apache/tomcat/util/IntrospectionUtils.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/IntrospectionUtils.java?rev=817075&r1=817074&r2=817075&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/IntrospectionUtils.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/IntrospectionUtils.java Sun Sep 20 18:32:48 2009
@@ -77,9 +77,8 @@
                 log.debug("No setAttribute in " + proxy.getClass());
             return;
         }
-        if (false)
-            if (log.isDebugEnabled())
-                log.debug("Setting " + n + "=" + v + "  in " + proxy);
+        if (log.isDebugEnabled())
+            log.debug("Setting " + n + "=" + v + "  in " + proxy);
         executeM.invoke(proxy, new Object[] { n, v });
         return;
     }
@@ -259,8 +258,9 @@
      * you can have setDebug(1).
      */
     public static boolean setProperty(Object o, String name, String value) {
-        if (dbg > 1)
-            d("setProperty(" + o.getClass() + " " + name + "=" + value + ")");
+        if (log.isDebugEnabled())
+            log.debug("IntrospectionUtils: setProperty(" +
+                    o.getClass() + " " + name + "=" + value + ")");
 
         String setter = "set" + capitalize(name);
 
@@ -318,13 +318,16 @@
                         try {
                             params[0] = InetAddress.getByName(value);
                         } catch (UnknownHostException exc) {
-                            d("Unable to resolve host name:" + value);
+                            if (log.isDebugEnabled())
+                                log.debug("IntrospectionUtils: Unable to resolve host name:" + value);
                             ok = false;
                         }
 
                         // Unknown type
                     } else {
-                        d("Unknown type " + paramType.getName());
+                        if (log.isDebugEnabled())
+                            log.debug("IntrospectionUtils: Unknown type " +
+                                    paramType.getName());
                     }
 
                     if (ok) {
@@ -371,23 +374,17 @@
         } catch (IllegalArgumentException ex2) {
             log.warn("IAE " + o + " " + name + " " + value, ex2);
         } catch (SecurityException ex1) {
-            if (dbg > 0)
-                d("SecurityException for " + o.getClass() + " " + name + "="
-                        + value + ")");
-            if (dbg > 1)
-                ex1.printStackTrace();
+            if (log.isDebugEnabled())
+                log.debug("IntrospectionUtils: SecurityException for " +
+                        o.getClass() + " " + name + "=" + value + ")", ex1);
         } catch (IllegalAccessException iae) {
-            if (dbg > 0)
-                d("IllegalAccessException for " + o.getClass() + " " + name
-                        + "=" + value + ")");
-            if (dbg > 1)
-                iae.printStackTrace();
+            if (log.isDebugEnabled())
+                log.debug("IntrospectionUtils: IllegalAccessException for " +
+                        o.getClass() + " " + name + "=" + value + ")", iae);
         } catch (InvocationTargetException ie) {
-            if (dbg > 0)
-                d("InvocationTargetException for " + o.getClass() + " " + name
-                        + "=" + value + ")");
-            if (dbg > 1)
-                ie.printStackTrace();
+            if (log.isDebugEnabled())
+                log.debug("IntrospectionUtils: InvocationTargetException for " +
+                        o.getClass() + " " + name + "=" + value + ")", ie);
         }
         return false;
     }
@@ -425,22 +422,17 @@
         } catch (IllegalArgumentException ex2) {
             log.warn("IAE " + o + " " + name, ex2);
         } catch (SecurityException ex1) {
-            if (dbg > 0)
-                d("SecurityException for " + o.getClass() + " " + name + ")");
-            if (dbg > 1)
-                ex1.printStackTrace();
+            if (log.isDebugEnabled())
+                log.debug("IntrospectionUtils: SecurityException for " +
+                        o.getClass() + " " + name + ")", ex1);
         } catch (IllegalAccessException iae) {
-            if (dbg > 0)
-                d("IllegalAccessException for " + o.getClass() + " " + name
-                        + ")");
-            if (dbg > 1)
-                iae.printStackTrace();
+            if (log.isDebugEnabled())
+                log.debug("IntrospectionUtils: IllegalAccessException for " +
+                        o.getClass() + " " + name + ")", iae);
         } catch (InvocationTargetException ie) {
-            if (dbg > 0)
-                d("InvocationTargetException for " + o.getClass() + " " + name
-                        + ")");
-            if (dbg > 1)
-                ie.printStackTrace();
+            if (log.isDebugEnabled())
+                log.debug("IntrospectionUtils: InvocationTargetException for " +
+                        o.getClass() + " " + name + ")");
         }
         return null;
     }
@@ -460,10 +452,9 @@
                 }
             }
         } catch (Exception ex1) {
-            if (dbg > 0)
-                d("Exception for " + o.getClass() + " " + name);
-            if (dbg > 1)
-                ex1.printStackTrace();
+            if (log.isDebugEnabled())
+                log.debug("IntrospectionUtils: Exception for " +
+                        o.getClass() + " " + name, ex1);
         }
     }
 
@@ -787,11 +778,14 @@
     public static Object callMethod1(Object target, String methodN,
             Object param1, String typeParam1, ClassLoader cl) throws Exception {
         if (target == null || param1 == null) {
-            d("Assert: Illegal params " + target + " " + param1);
+            if (log.isDebugEnabled())
+                log.debug("IntrospectionUtils: Assert: Illegal params " +
+                        target + " " + param1);
         }
-        if (dbg > 0)
-            d("callMethod1 " + target.getClass().getName() + " "
-                    + param1.getClass().getName() + " " + typeParam1);
+        if (log.isDebugEnabled())
+            log.debug("IntrospectionUtils: callMethod1 " +
+                    target.getClass().getName() + " " +
+                    param1.getClass().getName() + " " + typeParam1);
 
         Class<?> params[] = new Class[1];
         if (typeParam1 == null)
@@ -808,11 +802,14 @@
     public static Object callMethod0(Object target, String methodN)
             throws Exception {
         if (target == null) {
-            d("Assert: Illegal params " + target);
+            if (log.isDebugEnabled())
+                log.debug("IntrospectionUtils: Assert: Illegal params " +
+                        target);
             return null;
         }
-        if (dbg > 0)
-            d("callMethod0 " + target.getClass().getName() + "." + methodN);
+        if (log.isDebugEnabled())
+            log.debug("IntrospectionUtils: callMethod0 " +
+                    target.getClass().getName() + "." + methodN);
 
         Class<?> params[] = new Class[0];
         Method m = findMethod(target.getClass(), methodN, params);
@@ -829,13 +826,14 @@
         Method m = null;
         m = findMethod(target.getClass(), methodN, typeParams);
         if (m == null) {
-            d("Can't find method " + methodN + " in " + target + " CLASS "
-                    + target.getClass());
+            if (log.isDebugEnabled())
+                log.debug("IntrospectionUtils: Can't find method " + methodN +
+                        " in " + target + " CLASS " + target.getClass());
             return null;
         }
         Object o = m.invoke(target, params);
 
-        if (dbg > 0) {
+        if (log.isDebugEnabled()) {
             // debug
             StringBuffer sb = new StringBuffer();
             sb.append("" + target.getClass().getName() + "." + methodN + "( ");
@@ -845,7 +843,7 @@
                 sb.append(params[i]);
             }
             sb.append(")");
-            d(sb.toString());
+            log.debug("IntrospectionUtils:" + sb.toString());
         }
         return o;
     }
@@ -871,12 +869,16 @@
             try {
                 result = InetAddress.getByName(object);
             } catch (UnknownHostException exc) {
-                d("Unable to resolve host name:" + object);
+                if (log.isDebugEnabled())
+                    log.debug("IntrospectionUtils: Unable to resolve host name:" +
+                            object);
             }
 
             // Unknown type
         } else {
-            d("Unknown type " + paramType.getName());
+            if (log.isDebugEnabled())
+                log.debug("IntrospectionUtils: Unknown type " +
+                        paramType.getName());
         }
         if (result == null) {
             throw new IllegalArgumentException("Can't convert argument: " + object);
@@ -899,11 +901,4 @@
 
     }
 
-    // debug --------------------
-    static final int dbg = 0;
-
-    static void d(String s) {
-        if (log.isDebugEnabled())
-            log.debug("IntrospectionUtils: " + s);
-    }
 }

Modified: tomcat/trunk/java/org/apache/tomcat/util/buf/B2CConverter.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/buf/B2CConverter.java?rev=817075&r1=817074&r2=817075&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/buf/B2CConverter.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/buf/B2CConverter.java Sun Sep 20 18:32:48 2009
@@ -80,18 +80,19 @@
                 int cnt=conv.read( result, 0, size );
                 if( cnt <= 0 ) {
                     // End of stream ! - we may be in a bad state
-                    if( debug>0)
-                        log( "EOF" );
+                    if(log.isDebugEnabled())
+                        log.debug("B2CConverter: EOF");
                     return;
                 }
-                if( debug > 1 )
-                    log("Converted: " + new String( result, 0, cnt ));
+                if(log.isDebugEnabled())
+                    log.debug("B2CConverter: Converted: " +
+                            new String(result, 0, cnt));
                 cb.append( result, 0, cnt );
                 limit = limit - (bbLengthBeforeRead - bb.getLength());
             }
         } catch( IOException ex) {
-            if( debug>0)
-                log( "Reseting the converter " + ex.toString() );
+            if(log.isDebugEnabled())
+                log.debug("B2CConverter: Reseting the converter " + ex.toString());
             reset();
             throw ex;
         }
@@ -106,12 +107,6 @@
         conv=new ReadConvertor( iis, encoding );
     }
 
-    private final int debug=0;
-    void log( String s ) {
-        if (log.isDebugEnabled())
-            log.debug("B2CConverter: " + s );
-    }
-
 }
 
 // -------------------- Private implementation --------------------

Modified: tomcat/trunk/java/org/apache/tomcat/util/buf/UEncoder.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/buf/UEncoder.java?rev=817075&r1=817074&r2=817075&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/buf/UEncoder.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/buf/UEncoder.java Sun Sep 20 18:32:48 2009
@@ -44,7 +44,6 @@
     private ByteChunk bb=null;
 
     private String encoding="UTF8";
-    private static final int debug=0;
     
     public UEncoder() {
         initSafeChars();
@@ -75,10 +74,12 @@
         for (int i = 0; i < s.length(); i++) {
             int c = s.charAt(i);
             if( safeChars.get( c ) ) {
-                if( debug > 0 ) log("Safe: " + (char)c);
+                if(log.isDebugEnabled())
+                    log.debug("Encoder: Safe: " + (char)c);
                 buf.write((char)c);
             } else {
-                if( debug > 0 ) log("Unsafe:  " + (char)c);
+                if(log.isDebugEnabled())
+                    log.debug("Encoder: Unsafe:  " + (char)c);
                 c2b.convert( (char)c );
                 
                 // "surrogate" - UTF is _not_ 16 bit, but 21 !!!!
@@ -87,7 +88,8 @@
                     if ( (i+1) < s.length()) {
                         int d = s.charAt(i+1);
                         if (d >= 0xDC00 && d <= 0xDFFF) {
-                            if( debug > 0 ) log("Unsafe:  " + c);
+                            if(log.isDebugEnabled())
+                                log.debug("Encoder: Unsafe:  " + c);
                             c2b.convert( (char)d);
                             i++;
                         }
@@ -110,10 +112,12 @@
         for( int j=off; j< len; j++ ) {
             buf.write( '%' );
             char ch = Character.forDigit((bytes[j] >> 4) & 0xF, 16);
-            if( debug > 0 ) log("Encode:  " + ch);
+            if(log.isDebugEnabled())
+                log.debug("Encoder: Encode:  " + ch);
             buf.write(ch);
             ch = Character.forDigit(bytes[j] & 0xF, 16);
-            if( debug > 0 ) log("Encode:  " + ch);
+            if(log.isDebugEnabled())
+                log.debug("Encoder: Encode:  " + ch);
             buf.write(ch);
         }
     }
@@ -167,9 +171,4 @@
         safeChars.set(')');
         safeChars.set(',');
     }
-
-    private static void log( String s ) {
-        if (log.isDebugEnabled())
-            log.debug("Encoder: " + s );
-    }
 }

Modified: tomcat/trunk/java/org/apache/tomcat/util/http/Cookies.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/http/Cookies.java?rev=817075&r1=817074&r2=817075&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/http/Cookies.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/http/Cookies.java Sun Sep 20 18:32:48 2009
@@ -190,13 +190,15 @@
 
             // Uncomment to test the new parsing code
             if( cookieValue.getType() == MessageBytes.T_BYTES ) {
-                if( dbg>0 ) log( "Parsing b[]: " + cookieValue.toString());
+                if(log.isDebugEnabled())
+                    log.debug("Cookies: Parsing b[]: " + cookieValue.toString());
                 ByteChunk bc=cookieValue.getByteChunk();
                 processCookieHeader( bc.getBytes(),
                                      bc.getOffset(),
                                      bc.getLength());
             } else {
-                if( dbg>0 ) log( "Parsing S: " + cookieValue.toString());
+                if(log.isDebugEnabled())
+                    log.debug("Cookies: Parsing S: " + cookieValue.toString());
                 processCookieHeader( cookieValue.toString() );
             }
             pos++;// search from the next position
@@ -224,7 +226,8 @@
     
     private void processCookieHeader(  String cookieString )
     {
-        if( dbg>0 ) log( "Parsing cookie header " + cookieString );
+        if(log.isDebugEnabled())
+            log.debug("Cookies: Parsing cookie header " + cookieString);
         // normal cookie, with a string value.
         // This is the original code, un-optimized - it shouldn't
         // happen in normal case
@@ -248,7 +251,8 @@
                 
                 cookie.getName().setString(name);
                 cookie.getValue().setString(value);
-                if( dbg > 0 ) log( "Add cookie " + name + "=" + value);
+                if(log.isDebugEnabled())
+                    log.debug("Cookies: Add cookie " + name + "=" + value);
             } else {
                 // we have a bad cookie.... just let it go
             }
@@ -278,15 +282,6 @@
         return value;
     }  
 
-
-    // log
-    static final int dbg=0;
-    public void log(String s ) {
-        if (log.isDebugEnabled())
-            log.debug("Cookies: " + s);
-    }
-
-
    /**
      * Returns true if the byte is a separator character as
      * defined in RFC2619. Since this is called often, this
@@ -426,7 +421,8 @@
                         // INVALID COOKIE, advance to next delimiter
                         // The starting character of the cookie value was
                         // not valid.
-                        log("Invalid cookie. Value not a token or quoted value");
+                        log.info("Cookies: Invalid cookie." +
+                                "Value not a token or quoted value");
                         while (pos < end && bytes[pos] != ';' && 
                                bytes[pos] != ',') 
                             {pos++; }
@@ -525,7 +521,7 @@
                 } 
 
                 // Unknown cookie, complain
-                log("Unknown Special Cookie");
+                log.info("Cookies: Unknown Special Cookie");
 
             } else { // Normal Cookie
                 sc = addCookie();

Modified: tomcat/trunk/test/org/apache/catalina/tribes/demos/IntrospectionUtils.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/tribes/demos/IntrospectionUtils.java?rev=817075&r1=817074&r2=817075&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/tribes/demos/IntrospectionUtils.java (original)
+++ tomcat/trunk/test/org/apache/catalina/tribes/demos/IntrospectionUtils.java Sun Sep 20 18:32:48 2009
@@ -29,8 +29,6 @@
 import java.util.Hashtable;
 import java.util.StringTokenizer;
 import java.util.Vector;
-import org.apache.juli.logging.LogFactory;
-import org.apache.juli.logging.Log;
 
 // Depends: JDK1.1
 
@@ -39,9 +37,10 @@
  */
 public final class IntrospectionUtils {
 
-
-    private static Log log= LogFactory.getLog( IntrospectionUtils.class );
-
+    
+    private static org.apache.juli.logging.Log log=
+        org.apache.juli.logging.LogFactory.getLog( IntrospectionUtils.class );
+    
     /**
      * Call execute() - any ant-like task should work
      */
@@ -49,7 +48,7 @@
         Method executeM = null;
         Class<?> c = proxy.getClass();
         Class<?> params[] = new Class[0];
-        //	params[0]=args.getClass();
+        //  params[0]=args.getClass();
         executeM = findMethod(c, method, params);
         if (executeM == null) {
             throw new RuntimeException("No execute in " + proxy.getClass());
@@ -78,9 +77,8 @@
                 log.debug("No setAttribute in " + proxy.getClass());
             return;
         }
-        if (false)
-            if (log.isDebugEnabled())
-                log.debug("Setting " + n + "=" + v + "  in " + proxy);
+        if (log.isDebugEnabled())
+            log.debug("Setting " + n + "=" + v + "  in " + proxy);
         executeM.invoke(proxy, new Object[] { n, v });
         return;
     }
@@ -136,7 +134,7 @@
      * Guess a product install/home by analyzing the class path. It works for
      * product using the pattern: lib/executable.jar or if executable.jar is
      * included in classpath by a shell script. ( java -jar also works )
-     *
+     * 
      * Insures both "install" and "home" System properties are set. If either or
      * both System properties are unset, "install" and "home" will be set to the
      * same value. This value will be the other System property that is set, or
@@ -166,7 +164,7 @@
         StringTokenizer st = new StringTokenizer(cpath, pathSep);
         while (st.hasMoreTokens()) {
             String path = st.nextToken();
-            //	    log( "path " + path );
+            //      log( "path " + path );
             if (path.endsWith(jarName)) {
                 home = path.substring(0, path.length() - jarName.length());
                 try {
@@ -259,15 +257,17 @@
      * int or boolean we'll convert value to the right type before) - that means
      * you can have setDebug(1).
      */
-    public static void setProperty(Object o, String name, String value) {
-        if (dbg > 1)
-            d("setProperty(" + o.getClass() + " " + name + "=" + value + ")");
+    public static boolean setProperty(Object o, String name, String value) {
+        if (log.isDebugEnabled())
+            log.debug("IntrospectionUtils: setProperty(" +
+                    o.getClass() + " " + name + "=" + value + ")");
 
         String setter = "set" + capitalize(name);
 
         try {
             Method methods[] = findMethods(o.getClass());
-            Method setPropertyMethod = null;
+            Method setPropertyMethodVoid = null;
+            Method setPropertyMethodBool = null;
 
             // First, the ideal case - a setFoo( String ) method
             for (int i = 0; i < methods.length; i++) {
@@ -276,7 +276,7 @@
                         && "java.lang.String".equals(paramT[0].getName())) {
 
                     methods[i].invoke(o, new Object[] { value });
-                    return;
+                    return true;
                 }
             }
 
@@ -318,56 +318,75 @@
                         try {
                             params[0] = InetAddress.getByName(value);
                         } catch (UnknownHostException exc) {
-                            d("Unable to resolve host name:" + value);
+                            if (log.isDebugEnabled())
+                                log.debug("IntrospectionUtils: Unable to resolve host name:" + value);
                             ok = false;
                         }
 
                         // Unknown type
                     } else {
-                        d("Unknown type " + paramType.getName());
+                        if (log.isDebugEnabled())
+                            log.debug("IntrospectionUtils: Unknown type " +
+                                    paramType.getName());
                     }
 
                     if (ok) {
                         methods[i].invoke(o, params);
-                        return;
+                        return true;
                     }
                 }
 
                 // save "setProperty" for later
                 if ("setProperty".equals(methods[i].getName())) {
-                    setPropertyMethod = methods[i];
+                    if (methods[i].getReturnType()==Boolean.TYPE){
+                        setPropertyMethodBool = methods[i];
+                    }else {
+                        setPropertyMethodVoid = methods[i];    
+                    }
+                    
                 }
             }
 
             // Ok, no setXXX found, try a setProperty("name", "value")
-            if (setPropertyMethod != null) {
+            if (setPropertyMethodBool != null || setPropertyMethodVoid != null) {
                 Object params[] = new Object[2];
                 params[0] = name;
                 params[1] = value;
-                setPropertyMethod.invoke(o, params);
+                if (setPropertyMethodBool != null) {
+                    try {
+                        return (Boolean) setPropertyMethodBool.invoke(o, params);
+                    }catch (IllegalArgumentException biae) {
+                        //the boolean method had the wrong
+                        //parameter types. lets try the other
+                        if (setPropertyMethodVoid!=null) {
+                            setPropertyMethodVoid.invoke(o, params);
+                            return true;
+                        }else {
+                            throw biae;
+                        }
+                    }
+                } else {
+                    setPropertyMethodVoid.invoke(o, params);
+                    return true;
+                }
             }
 
         } catch (IllegalArgumentException ex2) {
             log.warn("IAE " + o + " " + name + " " + value, ex2);
         } catch (SecurityException ex1) {
-            if (dbg > 0)
-                d("SecurityException for " + o.getClass() + " " + name + "="
-                        + value + ")");
-            if (dbg > 1)
-                ex1.printStackTrace();
+            if (log.isDebugEnabled())
+                log.debug("IntrospectionUtils: SecurityException for " +
+                        o.getClass() + " " + name + "=" + value + ")", ex1);
         } catch (IllegalAccessException iae) {
-            if (dbg > 0)
-                d("IllegalAccessException for " + o.getClass() + " " + name
-                        + "=" + value + ")");
-            if (dbg > 1)
-                iae.printStackTrace();
+            if (log.isDebugEnabled())
+                log.debug("IntrospectionUtils: IllegalAccessException for " +
+                        o.getClass() + " " + name + "=" + value + ")", iae);
         } catch (InvocationTargetException ie) {
-            if (dbg > 0)
-                d("InvocationTargetException for " + o.getClass() + " " + name
-                        + "=" + value + ")");
-            if (dbg > 1)
-                ie.printStackTrace();
+            if (log.isDebugEnabled())
+                log.debug("IntrospectionUtils: InvocationTargetException for " +
+                        o.getClass() + " " + name + "=" + value + ")", ie);
         }
+        return false;
     }
 
     public static Object getProperty(Object o, String name) {
@@ -403,27 +422,22 @@
         } catch (IllegalArgumentException ex2) {
             log.warn("IAE " + o + " " + name, ex2);
         } catch (SecurityException ex1) {
-            if (dbg > 0)
-                d("SecurityException for " + o.getClass() + " " + name + ")");
-            if (dbg > 1)
-                ex1.printStackTrace();
+            if (log.isDebugEnabled())
+                log.debug("IntrospectionUtils: SecurityException for " +
+                        o.getClass() + " " + name + ")", ex1);
         } catch (IllegalAccessException iae) {
-            if (dbg > 0)
-                d("IllegalAccessException for " + o.getClass() + " " + name
-                        + ")");
-            if (dbg > 1)
-                iae.printStackTrace();
+            if (log.isDebugEnabled())
+                log.debug("IntrospectionUtils: IllegalAccessException for " +
+                        o.getClass() + " " + name + ")", iae);
         } catch (InvocationTargetException ie) {
-            if (dbg > 0)
-                d("InvocationTargetException for " + o.getClass() + " " + name
-                        + ")");
-            if (dbg > 1)
-                ie.printStackTrace();
+            if (log.isDebugEnabled())
+                log.debug("IntrospectionUtils: InvocationTargetException for " +
+                        o.getClass() + " " + name + ")");
         }
         return null;
     }
 
-    /**
+    /** 
      */
     public static void setProperty(Object o, String name) {
         String setter = "set" + capitalize(name);
@@ -438,36 +452,20 @@
                 }
             }
         } catch (Exception ex1) {
-            if (dbg > 0)
-                d("Exception for " + o.getClass() + " " + name);
-            if (dbg > 1)
-                ex1.printStackTrace();
-        }
-    }
-
-    /**
-     * Replace ${NAME} with the property value
-     *
-     * @deprecated Use the explicit method
-     */
-    public static String replaceProperties(String value, Object getter) {
-        if (getter instanceof Hashtable)
-            return replaceProperties(value, (Hashtable<String, String>) getter,
-                    null);
-
-        if (getter instanceof PropertySource) {
-            PropertySource src[] = new PropertySource[] { (PropertySource) getter };
-            return replaceProperties(value, null, src);
+            if (log.isDebugEnabled())
+                log.debug("IntrospectionUtils: Exception for " +
+                        o.getClass() + " " + name, ex1);
         }
-        return value;
     }
 
     /**
      * Replace ${NAME} with the property value
      */
     public static String replaceProperties(String value,
-            Hashtable<String, String> staticProp,
-            PropertySource dynamicProp[]) {
+            Hashtable<Object,Object> staticProp, PropertySource dynamicProp[]) {
+        if (value.indexOf("$") < 0) {
+            return value;
+        }
         StringBuffer sb = new StringBuffer();
         int prev = 0;
         // assert value!=nil
@@ -492,7 +490,7 @@
                 String n = value.substring(pos + 2, endName);
                 String v = null;
                 if (staticProp != null) {
-                    v = staticProp.get(n);
+                    v = (String) staticProp.get(n);
                 }
                 if (v == null && dynamicProp != null) {
                     for (int i = 0; i < dynamicProp.length; i++) {
@@ -626,7 +624,7 @@
      * Add elements from the classpath <i>cp </i> to a Vector <i>jars </i> as
      * file URLs (We use Vector for JDK 1.1 compat).
      * <p>
-     *
+     * 
      * @param jars The jar list
      * @param cp a String classpath of directory or jar file elements
      *   separated by path.separator delimiters.
@@ -694,119 +692,13 @@
         return getClassPath(jarsV);
     }
 
-    // -------------------- Mapping command line params to setters
-
-    public static boolean processArgs(Object proxy, String args[])
-            throws Exception {
-        String args0[] = null;
-        if (null != findMethod(proxy.getClass(), "getOptions1", new Class[] {})) {
-            args0 = (String[]) callMethod0(proxy, "getOptions1");
-        }
-
-        if (args0 == null) {
-            //args0=findVoidSetters(proxy.getClass());
-            args0 = findBooleanSetters(proxy.getClass());
-        }
-        Hashtable<String, String> h = null;
-        if (null != findMethod(proxy.getClass(), "getOptionAliases",
-                new Class[] {})) {
-            h = (Hashtable<String, String>) callMethod0(proxy,
-                    "getOptionAliases");
-        }
-        return processArgs(proxy, args, args0, null, h);
-    }
-
-    public static boolean processArgs(Object proxy, String args[],
-            String args0[], String args1[],
-            Hashtable<String, String> aliases) throws Exception {
-        for (int i = 0; i < args.length; i++) {
-            String arg = args[i];
-            if (arg.startsWith("-"))
-                arg = arg.substring(1);
-            if (aliases != null && aliases.get(arg) != null)
-                arg = aliases.get(arg);
-
-            if (args0 != null) {
-                boolean set = false;
-                for (int j = 0; j < args0.length; j++) {
-                    if (args0[j].equalsIgnoreCase(arg)) {
-                        setProperty(proxy, args0[j], "true");
-                        set = true;
-                        break;
-                    }
-                }
-                if (set)
-                    continue;
-            }
-            if (args1 != null) {
-                for (int j = 0; j < args1.length; j++) {
-                    if (args1[j].equalsIgnoreCase(arg)) {
-                        i++;
-                        if (i >= args.length)
-                            return false;
-                        setProperty(proxy, arg, args[i]);
-                        break;
-                    }
-                }
-            } else {
-                // if args1 is not specified,assume all other options have param
-                i++;
-                if (i >= args.length)
-                    return false;
-                setProperty(proxy, arg, args[i]);
-            }
-
-        }
-        return true;
-    }
-
     // -------------------- other utils --------------------
     public static void clear() {
         objectMethods.clear();
     }
-
-    public static String[] findVoidSetters(Class<?> c) {
-        Method m[] = findMethods(c);
-        if (m == null)
-            return null;
-        Vector<String> v = new Vector<String>();
-        for (int i = 0; i < m.length; i++) {
-            if (m[i].getName().startsWith("set")
-                    && m[i].getParameterTypes().length == 0) {
-                String arg = m[i].getName().substring(3);
-                v.addElement(unCapitalize(arg));
-            }
-        }
-        String s[] = new String[v.size()];
-        for (int i = 0; i < s.length; i++) {
-            s[i] = v.elementAt(i);
-        }
-        return s;
-    }
-
-    public static String[] findBooleanSetters(Class<?> c) {
-        Method m[] = findMethods(c);
-        if (m == null)
-            return null;
-        Vector<String> v = new Vector<String>();
-        for (int i = 0; i < m.length; i++) {
-            if (m[i].getName().startsWith("set")
-                    && m[i].getParameterTypes().length == 1
-                    && "boolean".equalsIgnoreCase(m[i].getParameterTypes()[0]
-                            .getName())) {
-                String arg = m[i].getName().substring(3);
-                v.addElement(unCapitalize(arg));
-            }
-        }
-        String s[] = new String[v.size()];
-        for (int i = 0; i < s.length; i++) {
-            s[i] = v.elementAt(i);
-        }
-        return s;
-    }
-
-    static Hashtable<Class<?>, Method[]> objectMethods =
-        new Hashtable<Class<?>, Method[]>();
+    
+    static Hashtable<Class<?>,Method[]> objectMethods =
+        new Hashtable<Class<?>,Method[]>();
 
     public static Method[] findMethods(Class<?> c) {
         Method methods[] = objectMethods.get(c);
@@ -818,7 +710,8 @@
         return methods;
     }
 
-    public static Method findMethod(Class<?> c, String name, Class<?> params[]) {
+    public static Method findMethod(Class<?> c, String name,
+            Class<?> params[]) {
         Method methods[] = findMethods(c);
         if (methods == null)
             return null;
@@ -885,11 +778,14 @@
     public static Object callMethod1(Object target, String methodN,
             Object param1, String typeParam1, ClassLoader cl) throws Exception {
         if (target == null || param1 == null) {
-            d("Assert: Illegal params " + target + " " + param1);
+            if (log.isDebugEnabled())
+                log.debug("IntrospectionUtils: Assert: Illegal params " +
+                        target + " " + param1);
         }
-        if (dbg > 0)
-            d("callMethod1 " + target.getClass().getName() + " "
-                    + param1.getClass().getName() + " " + typeParam1);
+        if (log.isDebugEnabled())
+            log.debug("IntrospectionUtils: callMethod1 " +
+                    target.getClass().getName() + " " +
+                    param1.getClass().getName() + " " + typeParam1);
 
         Class<?> params[] = new Class[1];
         if (typeParam1 == null)
@@ -906,11 +802,14 @@
     public static Object callMethod0(Object target, String methodN)
             throws Exception {
         if (target == null) {
-            d("Assert: Illegal params " + target);
+            if (log.isDebugEnabled())
+                log.debug("IntrospectionUtils: Assert: Illegal params " +
+                        target);
             return null;
         }
-        if (dbg > 0)
-            d("callMethod0 " + target.getClass().getName() + "." + methodN);
+        if (log.isDebugEnabled())
+            log.debug("IntrospectionUtils: callMethod0 " +
+                    target.getClass().getName() + "." + methodN);
 
         Class<?> params[] = new Class[0];
         Method m = findMethod(target.getClass(), methodN, params);
@@ -927,13 +826,14 @@
         Method m = null;
         m = findMethod(target.getClass(), methodN, typeParams);
         if (m == null) {
-            d("Can't find method " + methodN + " in " + target + " CLASS "
-                    + target.getClass());
+            if (log.isDebugEnabled())
+                log.debug("IntrospectionUtils: Can't find method " + methodN +
+                        " in " + target + " CLASS " + target.getClass());
             return null;
         }
         Object o = m.invoke(target, params);
 
-        if (dbg > 0) {
+        if (log.isDebugEnabled()) {
             // debug
             StringBuffer sb = new StringBuffer();
             sb.append("" + target.getClass().getName() + "." + methodN + "( ");
@@ -943,7 +843,7 @@
                 sb.append(params[i]);
             }
             sb.append(")");
-            d(sb.toString());
+            log.debug("IntrospectionUtils:" + sb.toString());
         }
         return o;
     }
@@ -957,7 +857,6 @@
             try {
                 result = new Integer(object);
             } catch (NumberFormatException ex) {
-                // Ignore
             }
             // Try a setFoo ( boolean )
         } else if ("java.lang.Boolean".equals(paramType.getName())
@@ -970,19 +869,23 @@
             try {
                 result = InetAddress.getByName(object);
             } catch (UnknownHostException exc) {
-                d("Unable to resolve host name:" + object);
+                if (log.isDebugEnabled())
+                    log.debug("IntrospectionUtils: Unable to resolve host name:" +
+                            object);
             }
 
             // Unknown type
         } else {
-            d("Unknown type " + paramType.getName());
+            if (log.isDebugEnabled())
+                log.debug("IntrospectionUtils: Unknown type " +
+                        paramType.getName());
         }
         if (result == null) {
             throw new IllegalArgumentException("Can't convert argument: " + object);
         }
         return result;
     }
-
+    
     // -------------------- Get property --------------------
     // This provides a layer of abstraction
 
@@ -998,11 +901,4 @@
 
     }
 
-    // debug --------------------
-    static final int dbg = 0;
-
-    static void d(String s) {
-        if (log.isDebugEnabled())
-            log.debug("IntrospectionUtils: " + s);
-    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org