--- old/src/share/classes/java/util/zip/CheckedInputStream.java 2013-05-15 22:59:46.287756842 +0400 +++ new/src/share/classes/java/util/zip/CheckedInputStream.java 2013-05-15 22:59:45.735487781 +0400 @@ -86,6 +86,8 @@ return len; } + private byte[] tmpbuf; + /** * Skips specified number of bytes of input. * @param n the number of bytes to skip @@ -93,11 +95,13 @@ * @exception IOException if an I/O error has occurred */ public long skip(long n) throws IOException { - byte[] buf = new byte[512]; + if (tmpbuf == null) { + tmpbuf = new byte[512]; + } long total = 0; while (total < n) { long len = n - total; - len = read(buf, 0, len < buf.length ? (int)len : buf.length); + len = read(tmpbuf, 0, len < tmpbuf.length ? (int)len : tmpbuf.length); if (len == -1) { return total; }