You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by cr...@locus.apache.org on 2000/05/05 08:08:46 UTC

cvs commit: jakarta-tomcat/proposals/catalina/src/share/org/apache/tomcat/valves AccessLogValve.java

craigmcc    00/05/04 23:08:46

  Modified:    proposals/catalina/src/share/org/apache/tomcat Response.java
               proposals/catalina/src/share/org/apache/tomcat/connector
                        ResponseBase.java ResponseStream.java
               proposals/catalina/src/share/org/apache/tomcat/valves
                        AccessLogValve.java
  Log:
  Add output byte counter to the Response interface and implementation, so
  that AccessLogValve can report the number of bytes actually sent, even if
  the servlet does not set the content length.
  
  Revision  Changes    Path
  1.6       +10 -4     jakarta-tomcat/proposals/catalina/src/share/org/apache/tomcat/Response.java
  
  Index: Response.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/proposals/catalina/src/share/org/apache/tomcat/Response.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- Response.java	2000/04/17 18:39:47	1.5
  +++ Response.java	2000/05/05 06:08:44	1.6
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat/proposals/catalina/src/share/org/apache/tomcat/Response.java,v 1.5 2000/04/17 18:39:47 craigmcc Exp $
  - * $Revision: 1.5 $
  - * $Date: 2000/04/17 18:39:47 $
  + * $Header: /home/cvs/jakarta-tomcat/proposals/catalina/src/share/org/apache/tomcat/Response.java,v 1.6 2000/05/05 06:08:44 craigmcc Exp $
  + * $Revision: 1.6 $
  + * $Date: 2000/05/05 06:08:44 $
    *
    * ====================================================================
    *
  @@ -79,7 +79,7 @@
    * based on the processing of a corresponding <code>Request</code>.
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.5 $ $Date: 2000/04/17 18:39:47 $
  + * @version $Revision: 1.6 $ $Date: 2000/05/05 06:08:44 $
    */
   
   public interface Response {
  @@ -100,6 +100,12 @@
        * @param connector The new connector
        */
       public void setConnector(Connector connector);
  +
  +
  +    /**
  +     * Return the number of bytes actually written to the output stream.
  +     */
  +    public int getContentCount();
   
   
       /**
  
  
  
  1.9       +26 -5     jakarta-tomcat/proposals/catalina/src/share/org/apache/tomcat/connector/ResponseBase.java
  
  Index: ResponseBase.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/proposals/catalina/src/share/org/apache/tomcat/connector/ResponseBase.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- ResponseBase.java	2000/05/02 22:02:22	1.8
  +++ ResponseBase.java	2000/05/05 06:08:45	1.9
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat/proposals/catalina/src/share/org/apache/tomcat/connector/ResponseBase.java,v 1.8 2000/05/02 22:02:22 craigmcc Exp $
  - * $Revision: 1.8 $
  - * $Date: 2000/05/02 22:02:22 $
  + * $Header: /home/cvs/jakarta-tomcat/proposals/catalina/src/share/org/apache/tomcat/connector/ResponseBase.java,v 1.9 2000/05/05 06:08:45 craigmcc Exp $
  + * $Revision: 1.9 $
  + * $Date: 2000/05/05 06:08:45 $
    *
    * ====================================================================
    *
  @@ -87,7 +87,7 @@
    * the connector-specific methods need to be implemented.
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.8 $ $Date: 2000/05/02 22:02:22 $
  + * @version $Revision: 1.9 $ $Date: 2000/05/05 06:08:45 $
    */
   
   public abstract class ResponseBase
  @@ -122,6 +122,12 @@
   
   
       /**
  +     * The actual number of bytes written to this Response.
  +     */
  +    protected int contentCount = 0;
  +
  +
  +    /**
        * The content length associated with this Response.
        */
       protected int contentLength = -1;
  @@ -217,6 +223,16 @@
   
   
       /**
  +     * Return the number of bytes actually written to the output stream.
  +     */
  +    public int getContentCount() {
  +
  +	return (this.contentCount);
  +
  +    }
  +
  +
  +    /**
        * Return the Context with which this Response is associated.
        */
       public Context getContext() {
  @@ -353,6 +369,7 @@
   	bufferCount = 0;
   	committed = false;
   	// connector is NOT reset when recycling
  +	contentCount = 0;
   	contentLength = -1;
   	contentType = "text/plain";
   	context = null;
  @@ -374,15 +391,19 @@
        *
        * @param b The byte to be written
        *
  -     * @exception IOExceptino if an input/output error occurs
  +     * @exception IOException if an input/output error occurs
        */
       public void write(int b) throws IOException {
   
   	if (bufferCount >= buffer.length)
   	    flushBuffer();
   	buffer[bufferCount++] = (byte) b;
  +	contentCount++;
   
       }
  +
  +
  +    // FIXME - Add optimized byte array versions of write()
   
   
       // ------------------------------------------------ ServletResponse Methods
  
  
  
  1.4       +7 -4      jakarta-tomcat/proposals/catalina/src/share/org/apache/tomcat/connector/ResponseStream.java
  
  Index: ResponseStream.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/proposals/catalina/src/share/org/apache/tomcat/connector/ResponseStream.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ResponseStream.java	2000/04/30 01:23:20	1.3
  +++ ResponseStream.java	2000/05/05 06:08:45	1.4
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat/proposals/catalina/src/share/org/apache/tomcat/connector/ResponseStream.java,v 1.3 2000/04/30 01:23:20 craigmcc Exp $
  - * $Revision: 1.3 $
  - * $Date: 2000/04/30 01:23:20 $
  + * $Header: /home/cvs/jakarta-tomcat/proposals/catalina/src/share/org/apache/tomcat/connector/ResponseStream.java,v 1.4 2000/05/05 06:08:45 craigmcc Exp $
  + * $Revision: 1.4 $
  + * $Date: 2000/05/05 06:08:45 $
    *
    * ====================================================================
    *
  @@ -79,7 +79,7 @@
    * enforce not writing more than that many bytes on the underlying stream.
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.3 $ $Date: 2000/04/30 01:23:20 $
  + * @version $Revision: 1.4 $ $Date: 2000/05/05 06:08:45 $
    */
   
   final class ResponseStream
  @@ -197,6 +197,9 @@
   	count++;
   
       }
  +
  +
  +    // FIXME - Add optimized byte array versions of write()
   
   
       // -------------------------------------------------------- Package Methods
  
  
  
  1.8       +2 -2      jakarta-tomcat/proposals/catalina/src/share/org/apache/tomcat/valves/AccessLogValve.java
  
  Index: AccessLogValve.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/proposals/catalina/src/share/org/apache/tomcat/valves/AccessLogValve.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- AccessLogValve.java	2000/04/29 05:59:57	1.7
  +++ AccessLogValve.java	2000/05/05 06:08:45	1.8
  @@ -122,7 +122,7 @@
    * can be implemented.
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.7 $ $Date: 2000/04/29 05:59:57 $
  + * @version $Revision: 1.8 $ $Date: 2000/05/05 06:08:45 $
    */
   
   public final class AccessLogValve
  @@ -478,7 +478,7 @@
   	} else if (pattern == 'A') {
   	    value = "127.0.0.1";	// FIXME
   	} else if (pattern == 'b') {
  -	    int length = response.getContentLength();
  +	    int length = response.getContentCount();
   	    if (length <= 0)
   		value = "-";
   	    else