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]