remm 2005/07/29 03:23:56 Modified: jk/java/org/apache/coyote/ajp AjpAprProcessor.java LocalStrings.properties AjpMessage.java http11/src/java/org/apache/coyote/http11 LocalStrings.properties Http11Processor.java Http11AprProcessor.java util/java/org/apache/tomcat/util/net AprEndpoint.java Log: - Internationalization for the processor classes. - Code cleanups. - No functional changes. Revision Changes Path 1.14 +18 -24 jakarta-tomcat-connectors/jk/java/org/apache/coyote/ajp/AjpAprProcessor.java Index: AjpAprProcessor.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/coyote/ajp/AjpAprProcessor.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- AjpAprProcessor.java 28 Jul 2005 13:48:47 -0000 1.13 +++ AjpAprProcessor.java 29 Jul 2005 10:23:55 -0000 1.14 @@ -42,7 +42,6 @@ import org.apache.tomcat.util.http.HttpMessages; import org.apache.tomcat.util.http.MimeHeaders; import org.apache.tomcat.util.net.AprEndpoint; -import org.apache.tomcat.util.net.SSLSupport; import org.apache.tomcat.util.res.StringManager; import org.apache.tomcat.util.threads.ThreadWithAttributes; @@ -67,7 +66,6 @@ protected static org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(AjpAprProcessor.class); - /** * The string manager for this package. */ @@ -439,7 +437,7 @@ error = true; break; } catch (Throwable t) { - log.debug("Error parsing HTTP request", t); + log.debug(sm.getString("ajpprocessor.header.error"), t); // 400 - Bad Request response.setStatus(400); error = true; @@ -452,7 +450,7 @@ prepareRequest(); thrA.setParam(endpoint, request.requestURI()); } catch (Throwable t) { - log.debug("Error preparing request", t); + log.debug(sm.getString("ajpprocessor.request.prepare"), t); // 400 - Internal Server Error response.setStatus(400); error = true; @@ -467,7 +465,7 @@ } catch (InterruptedIOException e) { error = true; } catch (Throwable t) { - log.error("Error processing request", t); + log.error(sm.getString("ajpprocessor.request.process"), t); // 500 - Internal Server Error response.setStatus(500); error = true; @@ -616,11 +614,11 @@ jsseCerts = new X509Certificate[1]; jsseCerts[0] = cert; } catch(java.security.cert.CertificateException e) { - log.error("Certificate convertion failed" , e ); + log.error(sm.getString("ajpprocessor.certs.fail"), e); return; } - request.setAttribute("javax.servlet.request.X509Certificate", jsseCerts); + request.setAttribute(AprEndpoint.CERTIFICATE_KEY, jsseCerts); } else if (actionCode == ActionCode.ACTION_REQ_HOST_ADDR_ATTRIBUTE) { @@ -630,7 +628,7 @@ long sa = Address.get(Socket.APR_REMOTE, socket); remoteAddr = Address.getip(sa); } catch (Exception e) { - log.warn("Exception getting socket information " ,e); + log.warn(sm.getString("ajpprocessor.socket.info"), e); } } request.remoteAddr().setString(remoteAddr); @@ -643,7 +641,7 @@ long sa = Address.get(Socket.APR_LOCAL, socket); localName = Address.getnameinfo(sa, 0); } catch (Exception e) { - log.warn("Exception getting socket information " ,e); + log.warn(sm.getString("ajpprocessor.socket.info"), e); } } request.localName().setString(localName); @@ -656,7 +654,7 @@ long sa = Address.get(Socket.APR_REMOTE, socket); remoteHost = Address.getnameinfo(sa, 0); } catch (Exception e) { - log.warn("Exception getting socket information " ,e); + log.warn(sm.getString("ajpprocessor.socket.info"), e); } } request.remoteHost().setString(remoteHost); @@ -673,7 +671,7 @@ localPort = addr.port; } } catch (Exception e) { - log.warn("Exception getting socket information " ,e); + log.warn(sm.getString("ajpprocessor.socket.info"), e); } } @@ -688,7 +686,7 @@ Sockaddr addr = Address.getInfo(sa); remotePort = addr.port; } catch (Exception e) { - log.warn("Exception getting socket information " ,e); + log.warn(sm.getString("ajpprocessor.socket.info"), e); } } request.setRemotePort(remotePort); @@ -705,7 +703,7 @@ localPort = addr.port; } } catch (Exception e) { - log.warn("Exception getting socket information " ,e); + log.warn(sm.getString("ajpprocessor.socket.info"), e); } } request.setLocalPort(localPort); @@ -794,7 +792,7 @@ if(0xA000 == isc) { requestHeaderMessage.getInt(); // To advance the read position hName = Constants.headerTransArray[hId - 1]; - vMB = headers.addValue( hName ); + vMB = headers.addValue(hName); } else { // reset hId -- if the header currently being read // happens to be 7 or 8 bytes long, the code below @@ -838,8 +836,6 @@ requestHeaderMessage.getBytes(tmpMB); String v = tmpMB.toString(); request.setAttribute(n, v); - if (log.isTraceEnabled()) - log.trace("jk Attribute set " + n + "=" + v); break; case Constants.SC_A_CONTEXT : @@ -887,20 +883,20 @@ case Constants.SC_A_SSL_CIPHER : request.scheme().setString("https"); requestHeaderMessage.getBytes(tmpMB); - request.setAttribute(SSLSupport.CIPHER_SUITE_KEY, - tmpMB.toString()); + request.setAttribute(AprEndpoint.CIPHER_SUITE_KEY, + tmpMB.toString()); break; case Constants.SC_A_SSL_SESSION : request.scheme().setString("https"); requestHeaderMessage.getBytes(tmpMB); - request.setAttribute(SSLSupport.SESSION_ID_KEY, - tmpMB.toString()); + request.setAttribute(AprEndpoint.SESSION_ID_KEY, + tmpMB.toString()); break; case Constants.SC_A_SSL_KEY_SIZE : - request.setAttribute(SSLSupport.KEY_SIZE_KEY, - new Integer(requestHeaderMessage.getInt())); + request.setAttribute(AprEndpoint.KEY_SIZE_KEY, + new Integer(requestHeaderMessage.getInt())); break; // FIXME: no usage for secret attribute here @@ -1222,8 +1218,6 @@ endOfStream = true; // we've read everything there is } if (endOfStream) { - if( log.isDebugEnabled() ) - log.debug("refillReadBuffer: end of stream " ); return false; } 1.3 +7 -1 jakarta-tomcat-connectors/jk/java/org/apache/coyote/ajp/LocalStrings.properties Index: LocalStrings.properties =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/coyote/ajp/LocalStrings.properties,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- LocalStrings.properties 23 Jun 2005 16:35:27 -0000 1.2 +++ LocalStrings.properties 29 Jul 2005 10:23:55 -0000 1.3 @@ -22,3 +22,9 @@ ajpprotocol.endpoint.resumeerror=Error resuming endpoint ajpprotocol.failedread=Socket read failed ajpprotocol.failedwrite=Socket write failed + +ajpprocessor.header.error=Header message parsing failed +ajpprocessor.request.prepare=Error preparing request +ajpprocessor.request.process=Error processing request +ajpprocessor.certs.fail=Certificate convertion failed +ajpprocessor.socket.info=Exception getting socket information 1.3 +93 -85 jakarta-tomcat-connectors/jk/java/org/apache/coyote/ajp/AjpMessage.java Index: AjpMessage.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/coyote/ajp/AjpMessage.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- AjpMessage.java 23 Jun 2005 17:22:13 -0000 1.2 +++ AjpMessage.java 29 Jul 2005 10:23:55 -0000 1.3 @@ -36,13 +36,21 @@ * @author Costin Manolache */ public class AjpMessage { + private static org.apache.commons.logging.Log log= org.apache.commons.logging.LogFactory.getLog( AjpMessage.class ); - // that's the original buffer size in ajp13 - otherwise we'll get interoperability problems. - private byte buf[]=new byte[8*1024]; - // The current read or write position in the buffer + + /** + * Fixed size buffer. + */ + private byte buf[] = new byte[8*1024]; + + /** + * The current read or write position in the buffer. + */ private int pos; + /** * This actually means different things depending on whether the * packet is read or write. For read, it's the length of the @@ -50,7 +58,6 @@ * the packet as a whole (counting the header). Oh, well. */ private int len; - /** * Prepare this packet for accumulating a message from the container to @@ -68,13 +75,13 @@ * the header. */ public void end() { - len=pos; - int dLen=len-4; + len = pos; + int dLen = len - 4; - buf[0] = (byte)0x41; - buf[1] = (byte)0x42; - buf[2]= (byte)((dLen>>>8 ) & 0xFF ); - buf[3] = (byte)(dLen & 0xFF); + buf[0] = (byte) 0x41; + buf[1] = (byte) 0x42; + buf[2] = (byte) ((dLen>>>8) & 0xFF); + buf[3] = (byte) (dLen & 0xFF); } public byte[] getBuffer() { @@ -92,19 +99,19 @@ * * @param val The integer to write. */ - public void appendInt( int val ) { - buf[pos++] = (byte) ((val >>> 8) & 0xFF); + public void appendInt(int val) { + buf[pos++] = (byte) ((val >>> 8) & 0xFF); buf[pos++] = (byte) (val & 0xFF); } - public void appendByte( int val ) { - buf[pos++] = (byte)val; + public void appendByte(int val) { + buf[pos++] = (byte) val; } - public void appendLongInt( int val ) { - buf[pos++] = (byte) ((val >>> 24) & 0xFF); - buf[pos++] = (byte) ((val >>> 16) & 0xFF); - buf[pos++] = (byte) ((val >>> 8) & 0xFF); + public void appendLongInt(int val) { + buf[pos++] = (byte) ((val >>> 24) & 0xFF); + buf[pos++] = (byte) ((val >>> 16) & 0xFF); + buf[pos++] = (byte) ((val >>> 8) & 0xFF); buf[pos++] = (byte) (val & 0xFF); } @@ -116,9 +123,10 @@ * code, where it saves a round of copying. A null string is * encoded as a string with length 0. */ - public void appendBytes(MessageBytes mb) throws IOException { - if(mb==null || mb.isNull() ) { - appendInt( 0); + public void appendBytes(MessageBytes mb) + throws IOException { + if (mb == null || mb.isNull()) { + appendInt(0); appendByte(0); return; } @@ -134,32 +142,34 @@ } } - public void appendByteChunk(ByteChunk bc) throws IOException { - if(bc==null) { + public void appendByteChunk(ByteChunk bc) + throws IOException { + if (bc == null) { log.error("appendByteChunk() null"); - appendInt( 0); + appendInt(0); appendByte(0); return; } byte[] bytes = bc.getBytes(); - int start=bc.getStart(); - appendInt( bc.getLength() ); + int start = bc.getStart(); + appendInt(bc.getLength()); cpBytes(bytes, start, bc.getLength()); appendByte(0); } - public void appendCharChunk(CharChunk cc) throws IOException { - if(cc==null) { + public void appendCharChunk(CharChunk cc) + throws IOException { + if(cc == null) { log.error("appendByteChunk() null"); - appendInt( 0); + appendInt(0); appendByte(0); return; } int start = cc.getStart(); int end = cc.getEnd(); - appendInt( cc.getLength() ); + appendInt(cc.getLength()); char[] cbuf = cc.getBuffer(); for (int i = start; i < end; i++) { char c = cbuf[i]; @@ -177,10 +187,11 @@ appendByte(0); } - public void appendString(String str) throws IOException { - if(str==null) { + public void appendString(String str) + throws IOException { + if(str == null) { log.error("appendByteChunk() null"); - appendInt( 0); + appendInt(0); appendByte(0); return; } @@ -215,27 +226,25 @@ * @param off The offset into the array at which to start copying * @param numBytes The number of bytes to copy. */ - public void appendBytes( byte b[], int off, int numBytes ) { - appendInt( numBytes ); - cpBytes( b, off, numBytes ); + public void appendBytes(byte b[], int off, int numBytes) { + appendInt(numBytes); + cpBytes(b, off, numBytes); appendByte(0); } - private void cpBytes( byte b[], int off, int numBytes ) { - if( pos + numBytes >= buf.length ) { + private void cpBytes(byte b[], int off, int numBytes) { + if (pos + numBytes >= buf.length) { log.error("Buffer overflow: buffer.len=" + buf.length + " pos=" + - pos + " data=" + numBytes ); + pos + " data=" + numBytes); dump("Overflow/coBytes"); - log.error( "Overflow ", new Throwable()); + log.error("Overflow ", new Throwable()); return; } - System.arraycopy( b, off, buf, pos, numBytes); + System.arraycopy(b, off, buf, pos, numBytes); pos += numBytes; // buf[pos + numBytes] = 0; // Terminating \0 } - - // ============ Data Reading Methods =================== /** @@ -248,14 +257,14 @@ int b1 = buf[pos++] & 0xFF; // No swap, Java order int b2 = buf[pos++] & 0xFF; - return (b1<<8) + b2; + return (b1<<8) + b2; } public int peekInt() { int b1 = buf[pos] & 0xFF; // No swap, Java order int b2 = buf[pos+1] & 0xFF; - return (b1<<8) + b2; + return (b1<<8) + b2; } public byte getByte() { @@ -270,11 +279,11 @@ public void getBytes(MessageBytes mb) { int length = getInt(); - if( (length == 0xFFFF) || (length == -1) ) { + if ((length == 0xFFFF) || (length == -1)) { mb.recycle(); return; } - mb.setBytes( buf, pos, length ); + mb.setBytes(buf, pos, length); pos += length; pos++; // Skip the terminating \0 } @@ -288,17 +297,17 @@ */ public int getBytes(byte dest[]) { int length = getInt(); - if( length > buf.length ) { + if (length > buf.length) { // XXX Should be if(pos + length > buff.legth)? - log.error("getBytes() buffer overflow " + length + " " + buf.length ); + log.error("getBytes() buffer overflow " + length + " " + buf.length); } - if( (length == 0xFFFF) || (length == -1) ) { + if ((length == 0xFFFF) || (length == -1)) { log.info("Null string " + length); return 0; } - System.arraycopy( buf, pos, dest, 0, length ); + System.arraycopy(buf, pos, dest, 0, length); pos += length; pos++; // Skip terminating \0 XXX I believe this is wrong but harmless return length; @@ -328,59 +337,58 @@ public int processHeader() { pos = 0; int mark = getInt(); - len = getInt(); + len = getInt(); - if( mark != 0x1234 && mark != 0x4142 ) { + if ((mark != 0x1234) && (mark != 0x4142)) { // XXX Logging log.error("BAD packet signature " + mark); - dump( "In: " ); + dump("In: "); return -1; } - if( log.isDebugEnabled() ) - log.debug( "Received " + len + " " + buf[0] ); + if (log.isDebugEnabled()) + log.debug("Received " + len + " " + buf[0]); return len; } - public void dump(String msg) { - if( log.isDebugEnabled() ) - log.debug( msg + ": " + buf + " " + pos +"/" + (len + 4)); - int max=pos; - if( len + 4 > pos ) - max=len+4; - if( max >1000 ) max=1000; - if( log.isDebugEnabled() ) - for( int j=0; j < max; j+=16 ) - log.debug( hexLine( buf, j, len )); - - } - /* -------------------- Utilities -------------------- */ - // XXX Move to util package - public static String hexLine( byte buf[], int start, int len ) { - StringBuffer sb=new StringBuffer(); - for( int i=start; i< start+16 ; i++ ) { - if( i < len + 4) - sb.append( hex( buf[i] ) + " "); + public void dump(String msg) { + if (log.isDebugEnabled()) + log.debug(msg + ": " + buf + " " + pos +"/" + (len + 4)); + int max = pos; + if (len + 4 > pos) + max = len+4; + if (max > 1000) + max = 1000; + if (log.isDebugEnabled()) + for(int j = 0; j < max; j += 16) + log.debug(hexLine(buf, j, len)); + } + + private static String hexLine(byte buf[], int start, int len) { + StringBuffer sb = new StringBuffer(); + for (int i = start; i < start + 16 ; i++) { + if (i < len + 4) + sb.append(hex(buf[i]) + " "); else - sb.append( " " ); + sb.append(" "); } sb.append(" | "); - for( int i=start; i < start+16 && i < len + 4; i++ ) { - if( ! Character.isISOControl( (char)buf[i] )) - sb.append( new Character((char)buf[i]) ); + for (int i = start; i < start + 16 && i < len + 4; i++) { + if (!Character.isISOControl((char)buf[i])) + sb.append(new Character((char)buf[i])); else - sb.append( "." ); + sb.append("."); } return sb.toString(); } - private static String hex( int x ) { - // if( x < 0) x=256 + x; - String h=Integer.toHexString( x ); - if( h.length() == 1 ) h = "0" + h; - return h.substring( h.length() - 2 ); + private static String hex(int x) { + String h = Integer.toHexString(x); + if (h.length() == 1) + h = "0" + h; + return h.substring(h.length() - 2); } } 1.9 +13 -1 jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/LocalStrings.properties Index: LocalStrings.properties =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/LocalStrings.properties,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- LocalStrings.properties 21 Mar 2004 22:37:50 -0000 1.8 +++ LocalStrings.properties 29 Jul 2005 10:23:56 -0000 1.9 @@ -30,6 +30,18 @@ # Http11Processor # +http11processor.regexp.error=Error parsing regular expression {0} +http11processor.filter.unknown=Unknown filter {0} +http11processor.filter.error=Error intializing filter {0} +http11processor.header.parse=Error parsing HTTP request header +http11processor.request.prepare=Error preparing request +http11processor.request.process=Error processing request +http11processor.request.finish=Error finishing request +http11processor.response.finish=Error finishing response +http11processor.socket.info=Exception getting socket information +http11processor.socket.ssl=Exception getting SSL attributes +http11processor.socket.timeout=Error setting socket timeout + # # InternalInputBuffer # 1.122 +24 -12 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.121 retrieving revision 1.122 diff -u -r1.121 -r1.122 --- Http11Processor.java 25 Jul 2005 15:32:48 -0000 1.121 +++ Http11Processor.java 29 Jul 2005 10:23:56 -0000 1.122 @@ -35,6 +35,7 @@ import org.apache.coyote.Request; import org.apache.coyote.RequestInfo; import org.apache.coyote.Response; +import org.apache.coyote.ajp.Constants; import org.apache.coyote.http11.filters.ChunkedInputFilter; import org.apache.coyote.http11.filters.ChunkedOutputFilter; import org.apache.coyote.http11.filters.GzipOutputFilter; @@ -52,6 +53,7 @@ import org.apache.tomcat.util.http.MimeHeaders; import org.apache.tomcat.util.net.PoolTcpEndpoint; import org.apache.tomcat.util.net.SSLSupport; +import org.apache.tomcat.util.res.StringManager; import org.apache.tomcat.util.threads.ThreadPool; import org.apache.tomcat.util.threads.ThreadWithAttributes; @@ -70,6 +72,12 @@ protected static org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(Http11Processor.class); + /** + * The string manager for this package. + */ + protected static StringManager sm = + StringManager.getManager(Constants.Package); + // ----------------------------------------------------------- Constructors @@ -383,7 +391,7 @@ noCompressionUserAgents = addREArray(noCompressionUserAgents, nRule); } catch (PatternSyntaxException pse) { - log.error("Error parsing regular expression: " + userAgent, pse); + log.error(sm.getString("http11processor.regexp.error", userAgent), pse); } } @@ -480,10 +488,10 @@ } else if (obj instanceof OutputFilter) { outputBuffer.addFilter((OutputFilter) obj); } else { - log.warn("Unknown filter: " + className); + log.warn(sm.getString("http11processor.filter.unknown", className)); } } catch (Exception e) { - log.error("Error intializing filter: " + className, e); + log.error(sm.getString("http11processor.filter.error", className), e); } } @@ -578,7 +586,7 @@ Pattern nRule = Pattern.compile(userAgent); restrictedUserAgents = addREArray(restrictedUserAgents, nRule); } catch (PatternSyntaxException pse) { - log.error("Error parsing regular expression: " + userAgent, pse); + log.error(sm.getString("http11processor.regexp.error", userAgent), pse); } } @@ -802,7 +810,7 @@ try { socket.setSoTimeout(soTimeout); } catch (Throwable t) { - log.debug("Error setting timeout", t); + log.debug(sm.getString("http11processor.socket.timeout"), t); error = true; } } @@ -828,7 +836,9 @@ error = true; break; } catch (Throwable t) { - log.debug("Error parsing HTTP request", t); + if (log.isDebugEnabled()) { + log.debug(sm.getString("http11processor.header.parse"), t); + } // 400 - Bad Request response.setStatus(400); error = true; @@ -840,7 +850,9 @@ try { prepareRequest(); } catch (Throwable t) { - log.debug("Error preparing request", t); + if (log.isDebugEnabled()) { + log.debug(sm.getString("http11processor.request.prepare"), t); + } // 400 - Internal Server Error response.setStatus(400); error = true; @@ -868,7 +880,7 @@ } catch (InterruptedIOException e) { error = true; } catch (Throwable t) { - log.error("Error processing request", t); + log.error(sm.getString("http11processor.request.process"), t); // 500 - Internal Server Error response.setStatus(500); error = true; @@ -883,7 +895,7 @@ } catch (IOException e) { error = true; } catch (Throwable t) { - log.error("Error finishing request", t); + log.error(sm.getString("http11processor.request.finish"), t); // 500 - Internal Server Error response.setStatus(500); error = true; @@ -895,7 +907,7 @@ } catch (IOException e) { error = true; } catch (Throwable t) { - log.error("Error finishing response", t); + log.error(sm.getString("http11processor.response.finish"), t); error = true; } @@ -1038,7 +1050,7 @@ (SSLSupport.SESSION_ID_KEY, sslO); } } catch (Exception e) { - log.warn("Exception getting SSL attributes " ,e); + log.warn(sm.getString("http11processor.socket.ssl"), e); } } else if (actionCode == ActionCode.ACTION_REQ_HOST_ADDR_ATTRIBUTE) { @@ -1110,7 +1122,7 @@ (SSLSupport.CERTIFICATE_KEY, sslO); } } catch (Exception e) { - log.warn("Exception getting SSL Cert",e); + log.warn(sm.getString("http11processor.socket.ssl"), e); } } } else if (actionCode == ActionCode.ACTION_REQ_SET_BODY_REPLAY) { 1.28 +34 -22 jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/Http11AprProcessor.java Index: Http11AprProcessor.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/Http11AprProcessor.java,v retrieving revision 1.27 retrieving revision 1.28 diff -u -r1.27 -r1.28 --- Http11AprProcessor.java 26 Jul 2005 16:39:14 -0000 1.27 +++ Http11AprProcessor.java 29 Jul 2005 10:23:56 -0000 1.28 @@ -34,6 +34,7 @@ import org.apache.coyote.Request; import org.apache.coyote.RequestInfo; import org.apache.coyote.Response; +import org.apache.coyote.ajp.Constants; import org.apache.coyote.http11.filters.ChunkedInputFilter; import org.apache.coyote.http11.filters.ChunkedOutputFilter; import org.apache.coyote.http11.filters.GzipOutputFilter; @@ -55,6 +56,7 @@ import org.apache.tomcat.util.http.FastHttpDateFormat; import org.apache.tomcat.util.http.MimeHeaders; import org.apache.tomcat.util.net.AprEndpoint; +import org.apache.tomcat.util.res.StringManager; import org.apache.tomcat.util.threads.ThreadWithAttributes; @@ -72,6 +74,12 @@ protected static org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(Http11AprProcessor.class); + /** + * The string manager for this package. + */ + protected static StringManager sm = + StringManager.getManager(Constants.Package); + // ----------------------------------------------------------- Constructors @@ -376,7 +384,7 @@ noCompressionUserAgents = addREArray(noCompressionUserAgents, nRule); } catch (PatternSyntaxException pse) { - log.error("Error parsing regular expression: " + userAgent, pse); + log.error(sm.getString("http11processor.regexp.error", userAgent), pse); } } @@ -473,10 +481,10 @@ } else if (obj instanceof OutputFilter) { outputBuffer.addFilter((OutputFilter) obj); } else { - log.warn("Unknown filter: " + className); + log.warn(sm.getString("http11processor.filter.unknown", className)); } } catch (Exception e) { - log.error("Error intializing filter: " + className, e); + log.error(sm.getString("http11processor.filter.error", className), e); } } @@ -571,7 +579,7 @@ Pattern nRule = Pattern.compile(userAgent); restrictedUserAgents = addREArray(restrictedUserAgents, nRule); } catch (PatternSyntaxException pse) { - log.error("Error parsing regular expression: " + userAgent, pse); + log.error(sm.getString("http11processor.regexp.error", userAgent), pse); } } @@ -790,7 +798,9 @@ error = true; break; } catch (Throwable t) { - log.debug("Error parsing HTTP request", t); + if (log.isDebugEnabled()) { + log.debug(sm.getString("http11processor.header.parse"), t); + } // 400 - Bad Request response.setStatus(400); error = true; @@ -802,7 +812,9 @@ try { prepareRequest(); } catch (Throwable t) { - log.debug("Error preparing request", t); + if (log.isDebugEnabled()) { + log.debug(sm.getString("http11processor.request.prepare"), t); + } // 400 - Internal Server Error response.setStatus(400); error = true; @@ -830,7 +842,7 @@ } catch (InterruptedIOException e) { error = true; } catch (Throwable t) { - log.error("Error processing request", t); + log.error(sm.getString("http11processor.request.process"), t); // 500 - Internal Server Error response.setStatus(500); error = true; @@ -845,7 +857,7 @@ } catch (IOException e) { error = true; } catch (Throwable t) { - log.error("Error finishing request", t); + log.error(sm.getString("http11processor.request.finish"), t); // 500 - Internal Server Error response.setStatus(500); error = true; @@ -857,7 +869,7 @@ } catch (IOException e) { error = true; } catch (Throwable t) { - log.error("Error finishing response", t); + log.error(sm.getString("http11processor.response.finish"), t); error = true; } @@ -996,7 +1008,7 @@ long sa = Address.get(Socket.APR_REMOTE, socket); remoteAddr = Address.getip(sa); } catch (Exception e) { - log.warn("Exception getting socket information " ,e); + log.warn(sm.getString("http11processor.socket.info"), e); } } request.remoteAddr().setString(remoteAddr); @@ -1009,7 +1021,7 @@ long sa = Address.get(Socket.APR_LOCAL, socket); localName = Address.getnameinfo(sa, 0); } catch (Exception e) { - log.warn("Exception getting socket information " ,e); + log.warn(sm.getString("http11processor.socket.info"), e); } } request.localName().setString(localName); @@ -1022,7 +1034,7 @@ long sa = Address.get(Socket.APR_REMOTE, socket); remoteHost = Address.getnameinfo(sa, 0); } catch (Exception e) { - log.warn("Exception getting socket information " ,e); + log.warn(sm.getString("http11processor.socket.info"), e); } } request.remoteHost().setString(remoteHost); @@ -1039,7 +1051,7 @@ localPort = addr.port; } } catch (Exception e) { - log.warn("Exception getting socket information " ,e); + log.warn(sm.getString("http11processor.socket.info"), e); } } @@ -1054,7 +1066,7 @@ Sockaddr addr = Address.getInfo(sa); remotePort = addr.port; } catch (Exception e) { - log.warn("Exception getting socket information " ,e); + log.warn(sm.getString("http11processor.socket.info"), e); } } request.setRemotePort(remotePort); @@ -1071,7 +1083,7 @@ localPort = addr.port; } } catch (Exception e) { - log.warn("Exception getting socket information " ,e); + log.warn(sm.getString("http11processor.socket.info"), e); } } request.setLocalPort(localPort); @@ -1084,7 +1096,7 @@ Object sslO = SSLSocket.getInfoS(socket, SSL.SSL_INFO_CIPHER); if (sslO != null) { request.setAttribute - ("javax.servlet.request.cipher_suite", sslO); + (AprEndpoint.CIPHER_SUITE_KEY, sslO); } // Client certificate chain if present int certLength = SSLSocket.getInfoI(socket, SSL.SSL_INFO_CLIENT_CERT_CHAIN); @@ -1101,23 +1113,23 @@ } if (certs != null) { request.setAttribute - ("javax.servlet.request.X509Certificate", certs); + (AprEndpoint.CERTIFICATE_KEY, certs); } // User key size sslO = new Integer(SSLSocket.getInfoI(socket, SSL.SSL_INFO_CIPHER_USEKEYSIZE)); if (sslO != null) { request.setAttribute - ("javax.servlet.request.key_size", sslO); + (AprEndpoint.KEY_SIZE_KEY, sslO); } // SSL session ID sslO = SSLSocket.getInfoS(socket, SSL.SSL_INFO_SESSION_ID); if (sslO != null) { request.setAttribute - ("javax.servlet.request.ssl_session", sslO); + (AprEndpoint.SESSION_ID_KEY, sslO); } } } catch (Exception e) { - log.warn("Exception getting SSL attributes " ,e); + log.warn(sm.getString("http11processor.socket.ssl"), e); } } else if (actionCode == ActionCode.ACTION_REQ_SSL_CERTIFICATE) { @@ -1148,10 +1160,10 @@ } if (certs != null) { request.setAttribute - ("javax.servlet.request.X509Certificate", certs); + (AprEndpoint.CERTIFICATE_KEY, certs); } } catch (Exception e) { - log.warn("Exception getting SSL Cert", e); + log.warn(sm.getString("http11processor.socket.ssl"), e); } } 1.70 +22 -0 jakarta-tomcat-connectors/util/java/org/apache/tomcat/util/net/AprEndpoint.java Index: AprEndpoint.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/util/java/org/apache/tomcat/util/net/AprEndpoint.java,v retrieving revision 1.69 retrieving revision 1.70 diff -u -r1.69 -r1.70 --- AprEndpoint.java 27 Jul 2005 15:12:02 -0000 1.69 +++ AprEndpoint.java 29 Jul 2005 10:23:56 -0000 1.70 @@ -65,6 +65,28 @@ StringManager.getManager("org.apache.tomcat.util.net.res"); + /** + * The Request attribute key for the cipher suite. + */ + public static final String CIPHER_SUITE_KEY = "javax.servlet.request.cipher_suite"; + + /** + * The Request attribute key for the key size. + */ + public static final String KEY_SIZE_KEY = "javax.servlet.request.key_size"; + + /** + * The Request attribute key for the client certificate chain. + */ + public static final String CERTIFICATE_KEY = "javax.servlet.request.X509Certificate"; + + /** + * The Request attribute key for the session id. + * This one is a Tomcat extension to the Servlet spec. + */ + public static final String SESSION_ID_KEY = "javax.servlet.request.ssl_session"; + + // ----------------------------------------------------------------- Fields
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]