Author: pero
Date: Fri Aug 17 03:54:37 2007
New Revision: 567009

URL: http://svn.apache.org/viewvc?view=rev&rev=567009
Log:
Fix problem with uncorrect access log content length after my 64 bit change. 
CoyoteResponse BytesWritten only correct after CoyoteAdapter finishResponse 
flush the buffer :-)
Thanks Takayuki Kaneko

Modified:
    
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/connector/OutputBuffer.java
    
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/connector/Response.java
    
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/valves/AccessLogValve.java
    
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/valves/ExtendedAccessLogValve.java
    
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/valves/FastCommonAccessLogValve.java
    
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/valves/JDBCAccessLogValve.java

Modified: 
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/connector/OutputBuffer.java
URL: 
http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/connector/OutputBuffer.java?view=diff&rev=567009&r1=567008&r2=567009
==============================================================================
--- 
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/connector/OutputBuffer.java
 (original)
+++ 
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/connector/OutputBuffer.java
 Fri Aug 17 03:54:37 2007
@@ -84,13 +84,13 @@
     /**
      * Number of bytes written.
      */
-    private int bytesWritten = 0;
+    private long bytesWritten = 0;
 
 
     /**
      * Number of chars written.
      */
-    private int charsWritten = 0;
+    private long charsWritten = 0;
 
 
     /**
@@ -598,21 +598,31 @@
 
     }
 
-
     public int getBytesWritten() {
-        return bytesWritten;
+        if (bytesWritten < Integer.MAX_VALUE) {
+            return (int) bytesWritten;
+        }
+        return -1;
     }
 
-
     public int getCharsWritten() {
-        return charsWritten;
+        if (charsWritten < Integer.MAX_VALUE) {
+            return (int) charsWritten;
+        }
+        return -1;
     }
 
-
     public int getContentWritten() {
-        return bytesWritten + charsWritten;
+        long size = bytesWritten + charsWritten ;
+        if (size < Integer.MAX_VALUE) {
+            return (int) size;
+        }
+        return -1;
     }
 
+    public long getContentWrittenLong() {
+        return bytesWritten + charsWritten;
+    }
 
     /** 
      * True if this buffer hasn't been used ( since recycle() ) -

Modified: 
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/connector/Response.java
URL: 
http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/connector/Response.java?view=diff&rev=567009&r1=567008&r2=567009
==============================================================================
--- 
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/connector/Response.java
 (original)
+++ 
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/connector/Response.java
 Fri Aug 17 03:54:37 2007
@@ -305,6 +305,12 @@
         return outputBuffer.getContentWritten();
     }
 
+    /**
+     * Return the number of bytes actually written to the output stream.
+     */
+    public long getContentCountLong() {
+        return outputBuffer.getContentWrittenLong();
+    }
 
     /**
      * Set the application commit flag.

Modified: 
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/valves/AccessLogValve.java
URL: 
http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/valves/AccessLogValve.java?view=diff&rev=567009&r1=567008&r2=567009
==============================================================================
--- 
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/valves/AccessLogValve.java
 (original)
+++ 
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/valves/AccessLogValve.java
 Fri Aug 17 03:54:37 2007
@@ -601,7 +601,7 @@
 
             result.append(space);
 
-            long length = response.getCoyoteResponse().getBytesWritten() ;
+            long length = response.getContentCountLong() ;
             if (length <= 0)
                 value = "-";
             else
@@ -806,15 +806,13 @@
                 value = "127.0.0.1";
             }
         } else if (pattern == 'b') {
-            //int length = response.getContentCount();
-            long length = response.getCoyoteResponse().getBytesWritten() ;
+            long length = response.getContentCountLong() ;
             if (length <= 0)
                 value = "-";
             else
                 value = "" + length;
         } else if (pattern == 'B') {
-            //value = "" + response.getContentLength();
-            value = "" + response.getCoyoteResponse().getBytesWritten();
+            value = "" + response.getContentCountLong();
         } else if (pattern == 'h') {
             value = request.getRemoteHost();
         } else if (pattern == 'H') {

Modified: 
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/valves/ExtendedAccessLogValve.java
URL: 
http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/valves/ExtendedAccessLogValve.java?view=diff&rev=567009&r1=567008&r2=567009
==============================================================================
--- 
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/valves/ExtendedAccessLogValve.java
 (original)
+++ 
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/valves/ExtendedAccessLogValve.java
 Fri Aug 17 03:54:37 2007
@@ -584,7 +584,7 @@
                     else if (FieldInfo.SPECIAL_TIME==fieldInfos[i].location)
                         result.append(timeFormatter.format(date));
                     else if (FieldInfo.SPECIAL_BYTES==fieldInfos[i].location) {
-                        long length = 
response.getCoyoteResponse().getBytesWritten() ;
+                        long length = response.getContentCountLong() ;
                         if (length > 0)
                             result.append(length);
                         else

Modified: 
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/valves/FastCommonAccessLogValve.java
URL: 
http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/valves/FastCommonAccessLogValve.java?view=diff&rev=567009&r1=567008&r2=567009
==============================================================================
--- 
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/valves/FastCommonAccessLogValve.java
 (original)
+++ 
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/valves/FastCommonAccessLogValve.java
 Fri Aug 17 03:54:37 2007
@@ -523,8 +523,7 @@
         
         result.append(space);
         
-        long length = response.getCoyoteResponse().getBytesWritten() ;
-
+        long length = response.getContentCountLong() ;
         if (length <= 0)
             value = "-";
         else

Modified: 
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/valves/JDBCAccessLogValve.java
URL: 
http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/valves/JDBCAccessLogValve.java?view=diff&rev=567009&r1=567008&r2=567009
==============================================================================
--- 
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/valves/JDBCAccessLogValve.java
 (original)
+++ 
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/valves/JDBCAccessLogValve.java
 Fri Aug 17 03:54:37 2007
@@ -463,8 +463,8 @@
         String query="";
         if(request != null)
             query = request.getRequestURI();
-        long bytes = response.getCoyoteResponse().getBytesWritten() ;
-
+        
+        long bytes = response.getContentCountLong() ;
         if(bytes < 0)
             bytes = 0;
         int status = response.getStatus();



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

Reply via email to