Index: modules/luni/src/main/java/java/io/InputStreamReader.java =================================================================== --- modules/luni/src/main/java/java/io/InputStreamReader.java (revision 540842) +++ modules/luni/src/main/java/java/io/InputStreamReader.java (working copy) @@ -396,7 +396,6 @@ CharBuffer out = CharBuffer.wrap(buf, offset, length); CoderResult result = CoderResult.UNDERFLOW; byte[] a = bytes.array(); - boolean has_been_read = false; if (!bytes.hasRemaining() || bytes.limit() == bytes.capacity()) { // Nothing is available in the buffer... @@ -409,7 +408,6 @@ return -1; } bytes.limit(readed); - has_been_read = true; } while (out.hasRemaining()) { @@ -427,7 +425,7 @@ } } if (in.available() > 0 - && (!has_been_read && out.hasRemaining()) + && out.hasRemaining() || out.position() == 0) { bytes.compact(); int to_read = bytes.remaining(); @@ -441,7 +439,6 @@ endOfInput = true; break; } - has_been_read = true; if (to_read > 0) { bytes.limit(bytes.position() + to_read); bytes.position(0);