On 02/03/2026 21:01, David Cleary wrote:
On 2/24/26 8:43 AM, David Cleary wrote:
A customer is asking why the number of bytes written can appear as - in the
access log when compression is enabled. They use this value in one of their
monitoring tools.
AI tells me this:
When compression is enabled:
1. Compressed data is buffered in the compression filter layer
2. getBytesWritten(false) returns the count of bytes that have already
been written to the socket
3. Any compressed data still residing in the buffer is not included
because the buffer was never flushed
4. This can result in zero or an inaccurate byte count being logged
The bit AI missed is that the response is complete by the time the
access log valve is called so the bytes should be correct.
Is there any way to ensure this value gets logged when compression is enabled?
It sounds like your report says that only *sometimes* is the value
appearing as - in the logs. Can you confirm that? Can you tell us
roughly what percentage of access log entries contain - versus a real value?
An answer to the above question would be helpful.
Is there any pattern to the URLs that are being requested that show - as
the bytes-written value?
And this one.
My initial reaction is that Tomcat should be flushing that buffer even
if the application isn't doing it, and should therefore be able to give
an accurate number.
Agreed.
What version are you using, and are there any unusual things going on
such as other Filters that might be altering the number of bytes passing
through the pipeline?
Also,
- Connector configuration
- MIME type of file
- size of file before compression
I've tried and failed to reproduce this. Without a minimal reproducible
test case, there is very little we can do.
Mark
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]