@Override public void close() throws IOException {
  if (!mSeenEof) {
    mThread.interrupt();
    try {
      mThread.join();
    }
 catch (    final InterruptedException e) {
      throw new IOException("AsynchInputStream interrupted during close");
    }
 finally {
      super.close();
    }
  }
  checkException();
}

@ Override public void close ( ) throws IOException { if ( ! mSeenEof ) { mThread . interrupt ( ) ; try { mThread . join ( ) ; } catch ( final InterruptedException e ) { throw new IOException ( "AsynchInputStream interrupted during close" ) ; } finally { super . close ( ) ; } } checkException ( ) ; }
this also io errors that happened in the thread .
