The fix to 6364346 is such that if the length of the user data buffer given to write(byte, int, int) is longer than the size of the Deflater's buffer, then the user data buffer is "chunked" into Deflater-buffer-size chunks. This is inefficient when using compression, because almost certainly N bytes of user data will compress to M bytes, and N > M. So upon each invocation of the compressor, the Deflater buffer will not be filled, resulting in more invocations of deflateBytes than necessary. But (simple) attempts to increase the size of the "stride" (see DeflaterOutputStream) have not shown a performance advantage, though the approach seems promising.
It is possible that the idea of proceeding in strides could be moved from DelfaterOutputStream to deflateBytes, effectively bypassing Deflater.java. This would still require careful coordination of changes with Deflater.java, since deflateBytes manipulates fields in Deflater.java.