2011/7/5 <ma...@apache.org>: > Author: markt > Date: Tue Jul 5 16:45:38 2011 > New Revision: 1143134 > > URL: http://svn.apache.org/viewvc?rev=1143134&view=rev > Log: > Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=51475 > Handle messages larger than the buffer size. Expand test cases to cover this. > Based on a patch by Christian Stöber. > > Modified: > > tomcat/trunk/java/org/apache/catalina/tribes/group/interceptors/GzipInterceptor.java > > tomcat/trunk/test/org/apache/catalina/tribes/group/interceptors/TestGzipInterceptor.java >
> public static byte[] decompress(byte[] data) throws IOException { > + ByteArrayOutputStream bout = new ByteArrayOutputStream(); The above has initial size of 32 bytes. It looks too short but I do not know what typical sizes are in tribes here. DEFAULT_BUFFER_SIZE will be 2Kb. > ByteArrayInputStream bin = new ByteArrayInputStream(data); > GZIPInputStream gin = new GZIPInputStream(bin); > byte[] tmp = new byte[DEFAULT_BUFFER_SIZE]; > - int length = gin.read(tmp); > - byte[] result = new byte[length]; > - System.arraycopy(tmp,0,result,0,length); > - return result; > + int length = 0; Just int length = gin.read(tmp); will save an iteration. > + while (length > -1) { > + bout.write(tmp, 0, length); > + length = gin.read(tmp); > + } > + return bout.toByteArray(); > } > } Best regards, Konstantin Kolinko --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org