--- a/jdk/src/share/classes/java/io/SequenceInputStream.java Thu Mar 13 07:24:12 2014 +0400
+++ b/jdk/src/share/classes/java/io/SequenceInputStream.java Thu Mar 13 07:52:17 2014 +0400
@@ -135,7 +135,7 @@
* @since JDK1.1
*/
public int available() throws IOException {
- if(in == null) {
+ if (in == null) {
return 0; // no way to signal EOF from available()
}
return in.available();
@@ -160,15 +160,14 @@
* @exception IOException if an I/O error occurs.
*/
public int read() throws IOException {
- if (in == null) {
- return -1;
+ while (in != null) {
+ int c = in.read();
+ if (c != -1) {
+ return c;
+ }
+ nextStream();
}
- int c = in.read();
- if (c == -1) {
- nextStream();
- return read();
- }
- return c;
+ return -1;
}
/**
@@ -204,13 +203,14 @@
} else if (len == 0) {
return 0;
}
-
- int n = in.read(b, off, len);
- if (n <= 0) {
+ do {
+ int n = in.read(b, off, len);
+ if (n > 0) {
+ return n;
+ }
nextStream();
- return read(b, off, len);
- }
- return n;
+ } while (in != null);
+ return -1;
}
/**