whitespace fixups
[jSite2.git] / src / net / pterodactylus / util / io / LimitedInputStream.java
index 8e23f24..68e5d16 100644 (file)
@@ -1,6 +1,7 @@
 /**
  * © 2008 INA Service GmbH
  */
+
 package net.pterodactylus.util.io;
 
 import java.io.FilterInputStream;
@@ -10,9 +11,8 @@ import java.io.InputStream;
 /**
  * A wrapper around an {@link InputStream} that only supplies a limit number of
  * bytes from the underlying input stream.
- * 
+ *
  * @author <a href="mailto:dr@ina-germany.de">David Roden</a>
- * @version $Id$
  */
 public class LimitedInputStream extends FilterInputStream {
 
@@ -22,7 +22,7 @@ public class LimitedInputStream extends FilterInputStream {
        /**
         * Creates a new LimitedInputStream that supplies at most
         * <code>length</code> bytes from the given input stream.
-        * 
+        *
         * @param inputStream
         *            The input stream
         * @param length
@@ -38,6 +38,9 @@ public class LimitedInputStream extends FilterInputStream {
         */
        @Override
        public synchronized int available() throws IOException {
+               if (remaining == 0) {
+                       return 0;
+               }
                return (int) Math.min(super.available(), Math.min(Integer.MAX_VALUE, remaining));
        }
 
@@ -73,7 +76,7 @@ public class LimitedInputStream extends FilterInputStream {
         */
        @Override
        public synchronized long skip(long n) throws IOException {
-               if (n < 0) {
+               if ((n < 0) || (remaining == 0)) {
                        return 0;
                }
                long skipped = super.skip(Math.min(n, remaining));
@@ -82,11 +85,9 @@ public class LimitedInputStream extends FilterInputStream {
        }
 
        /**
-        * {@inheritDoc}
-        * 
-        * This method does nothing, as {@link #mark(int)} and {@link #reset()} are
-        * not supported.
-        * 
+        * {@inheritDoc} This method does nothing, as {@link #mark(int)} and
+        * {@link #reset()} are not supported.
+        *
         * @see java.io.FilterInputStream#mark(int)
         */
        @Override
@@ -96,7 +97,7 @@ public class LimitedInputStream extends FilterInputStream {
 
        /**
         * {@inheritDoc}
-        * 
+        *
         * @see java.io.FilterInputStream#markSupported()
         * @return <code>false</code>
         */
@@ -106,11 +107,9 @@ public class LimitedInputStream extends FilterInputStream {
        }
 
        /**
-        * {@inheritDoc}
-        * 
-        * This method does nothing, as {@link #mark(int)} and {@link #reset()} are
-        * not supported.
-        * 
+        * {@inheritDoc} This method does nothing, as {@link #mark(int)} and
+        * {@link #reset()} are not supported.
+        *
         * @see java.io.FilterInputStream#reset()
         */
        @Override
@@ -121,7 +120,7 @@ public class LimitedInputStream extends FilterInputStream {
        /**
         * Consumes the input stream, i.e. read all bytes until the limit is
         * reached.
-        * 
+        *
         * @throws IOException
         *             if an I/O error occurs
         */