--- old/src/share/classes/java/io/BufferedInputStream.java Wed Nov 17 17:42:09 2010 +++ new/src/share/classes/java/io/BufferedInputStream.java Wed Nov 17 17:42:09 2010 @@ -395,7 +395,11 @@ * or an I/O error occurs. */ public synchronized int available() throws IOException { - return getInIfOpen().available() + (count - pos); + int n = count - pos; + int avail = getInIfOpen().available(); + return n > (Integer.MAX_VALUE - avail) + ? Integer.MAX_VALUE + : n + avail; } /**