remm        2004/01/14 03:12:50

  Modified:    http11/src/java/org/apache/coyote/http11
                        Http11Processor.java
  Log:
  - Correctly initialize arrays (Java is not C ;-) ).
  - Also add some logging.
  
  Revision  Changes    Path
  1.94      +33 -24    
jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/Http11Processor.java
  
  Index: Http11Processor.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/Http11Processor.java,v
  retrieving revision 1.93
  retrieving revision 1.94
  diff -u -r1.93 -r1.94
  --- Http11Processor.java      8 Jan 2004 13:08:13 -0000       1.93
  +++ Http11Processor.java      14 Jan 2004 11:12:50 -0000      1.94
  @@ -389,8 +389,11 @@
       public void addNoCompressionUserAgent(String userAgent) {
           try {
               RE nRule = new RE(userAgent);
  -            addREArray(noCompressionUserAgents, new RE(userAgent));
  -        } catch (RESyntaxException ree) {}
  +            noCompressionUserAgents = 
  +                addREArray(noCompressionUserAgents, nRule);
  +        } catch (RESyntaxException ree) {
  +            log.error("Error parsing regular expression: " + userAgent, ree);
  +        }
       }
   
   
  @@ -428,7 +431,8 @@
        * @param userAgent user-agent string
        */
       public void addCompressableMimeType(String mimeType) {
  -        addStringArray(compressableMimeTypes, mimeType);
  +        compressableMimeTypes = 
  +            addStringArray(compressableMimeTypes, mimeType);
       }
   
   
  @@ -485,10 +489,10 @@
               } else if (obj instanceof OutputFilter) {
                   outputBuffer.addFilter((OutputFilter) obj);
               } else {
  -                // Not a valid filter: log and ignore
  +                log.warn("Unknown filter: " + className);
               }
           } catch (Exception e) {
  -            // Log and ignore
  +            log.error("Error intializing filter: " + className, e);
           }
       }
   
  @@ -499,18 +503,19 @@
        * @param sArray the StringArray 
        * @param value string
        */
  -    private void addStringArray(String sArray[], String value) {
  +    private String[] addStringArray(String sArray[], String value) {
  +        String[] result = null;
           if (sArray == null) {
  -            sArray = new String[1];
  -            sArray[0] = value;
  +            result = new String[1];
  +            result[0] = value;
           }
           else {
  -            String[] results = new String[sArray.length + 1];
  +            result = new String[sArray.length + 1];
               for (int i = 0; i < sArray.length; i++)
  -                results[i] = sArray[i];
  -            results[sArray.length] = value;
  -            sArray = results;
  +                result[i] = sArray[i];
  +            result[sArray.length] = value;
           }
  +        return result;
       }
   
   
  @@ -520,18 +525,19 @@
        * @param rArray the REArray 
        * @param value Obj
        */
  -    private void addREArray(RE rArray[], RE value) {
  +    private RE[] addREArray(RE rArray[], RE value) {
  +        RE[] result = null;
           if (rArray == null) {
  -            rArray = new RE[1];
  -            rArray[0] = value;
  -        }    
  +            result = new RE[1];
  +            result[0] = value;
  +        }
           else {    
  -            RE[] results = new RE[rArray.length + 1];
  +            result = new RE[rArray.length + 1];
               for (int i = 0; i < rArray.length; i++)
  -                results[i] = rArray[i];
  -            results[rArray.length] = value;
  -            rArray = results;
  +                result[i] = rArray[i];
  +            result[rArray.length] = value;
           }
  +        return result;
       }
   
   
  @@ -579,8 +585,10 @@
       public void addRestrictedUserAgent(String userAgent) {
           try {
               RE nRule = new RE(userAgent);
  -            addREArray(restrictedUserAgents, new RE(userAgent));
  -        } catch (RESyntaxException ree) {}
  +            restrictedUserAgents = addREArray(restrictedUserAgents, nRule);
  +        } catch (RESyntaxException ree) {
  +            log.error("Error parsing regular expression: " + userAgent, ree);
  +        }
       }
   
   
  @@ -593,6 +601,7 @@
           this.restrictedUserAgents = restrictedUserAgents;
       }
   
  +
       /**
        * Set restricted user agent list (which will downgrade the connector
        * to HTTP/1.0 mode). List contains users agents separated by ',' :
  @@ -601,8 +610,8 @@
        */
       public void setRestrictedUserAgents(String restrictedUserAgents) {
           if (restrictedUserAgents != null) {
  -            StringTokenizer st = new StringTokenizer(restrictedUserAgents, ",");
  -        
  +            StringTokenizer st = 
  +                new StringTokenizer(restrictedUserAgents, ",");
               while (st.hasMoreTokens()) {
                   addRestrictedUserAgent(st.nextToken().trim());
               }
  
  
  

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

Reply via email to