jetbrains.buildServer.util
Class CloseAwareInputStream

java.lang.Object
  extended by java.io.InputStream
      extended by jetbrains.buildServer.util.CloseAwareInputStream
All Implemented Interfaces:
java.io.Closeable

public class CloseAwareInputStream
extends java.io.InputStream

InputStream wrapper that makes sure delegate close() method is called only once.

Since:
6.5.3

Constructor Summary
CloseAwareInputStream(java.io.InputStream delegate)
           
 
Method Summary
 int available()
           
 void close()
           
protected  void doClose()
           
 int read()
           
 int read(byte[] b)
           
 int read(byte[] b, int off, int len)
           
 long skip(long n)
           
 
Methods inherited from class java.io.InputStream
mark, markSupported, reset
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CloseAwareInputStream

public CloseAwareInputStream(@NotNull
                             java.io.InputStream delegate)
Method Detail

skip

public long skip(long n)
          throws java.io.IOException
Overrides:
skip in class java.io.InputStream
Throws:
java.io.IOException

read

public int read()
         throws java.io.IOException
Specified by:
read in class java.io.InputStream
Throws:
java.io.IOException

read

public int read(byte[] b)
         throws java.io.IOException
Overrides:
read in class java.io.InputStream
Throws:
java.io.IOException

read

public int read(byte[] b,
                int off,
                int len)
         throws java.io.IOException
Overrides:
read in class java.io.InputStream
Throws:
java.io.IOException

close

public void close()
Specified by:
close in interface java.io.Closeable
Overrides:
close in class java.io.InputStream

doClose

protected void doClose()

available

public int available()
              throws java.io.IOException
Overrides:
available in class java.io.InputStream
Throws:
java.io.IOException