X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fjexer%2Fio%2FTimeoutInputStream.java;h=d65426261ed3df9e587b62135d7c55e0cd618197;hb=615a0d99fd0aa4437116dd083147f9150d5e6527;hp=db9eb4a6006897ea1a576c123cea0df0acf23a68;hpb=7d922e0dfd9a6da42b84e01d52adeec6fff10025;p=fanfix.git diff --git a/src/jexer/io/TimeoutInputStream.java b/src/jexer/io/TimeoutInputStream.java index db9eb4a..d654262 100644 --- a/src/jexer/io/TimeoutInputStream.java +++ b/src/jexer/io/TimeoutInputStream.java @@ -37,6 +37,10 @@ import java.io.InputStream; */ public class TimeoutInputStream extends InputStream { + // ------------------------------------------------------------------------ + // Variables -------------------------------------------------------------- + // ------------------------------------------------------------------------ + /** * The wrapped stream. */ @@ -54,12 +58,9 @@ public class TimeoutInputStream extends InputStream { */ private volatile boolean cancel = false; - /** - * Request that the current read() operation timeout immediately. - */ - public synchronized void cancelRead() { - cancel = true; - } + // ------------------------------------------------------------------------ + // Constructors ----------------------------------------------------------- + // ------------------------------------------------------------------------ /** * Public constructor, at the default timeout of 10000 millis (10 @@ -93,6 +94,10 @@ public class TimeoutInputStream extends InputStream { this.timeoutMillis = timeoutMillis; } + // ------------------------------------------------------------------------ + // InputStream ------------------------------------------------------------ + // ------------------------------------------------------------------------ + /** * Reads the next byte of data from the input stream. * @@ -209,7 +214,9 @@ public class TimeoutInputStream extends InputStream { "on?"); } remaining -= rc; - return rc; + if (remaining == 0) { + return b.length; + } } } @@ -283,7 +290,10 @@ public class TimeoutInputStream extends InputStream { "available, but read() returned -1. What is going " + "on?"); } - return rc; + remaining -= rc; + if (remaining == 0) { + return len; + } } } @@ -362,4 +372,15 @@ public class TimeoutInputStream extends InputStream { return stream.skip(n); } + // ------------------------------------------------------------------------ + // TimeoutInputStream ----------------------------------------------------- + // ------------------------------------------------------------------------ + + /** + * Request that the current read() operation timeout immediately. + */ + public synchronized void cancelRead() { + cancel = true; + } + }