@Override public int read(final char[] buffer,final int off,final int len) throws IOException {
  if (throwable instanceof IOException) {
    throw (IOException)throwable;
  }
 else   if (throwable != null) {
    throw new IOException("",throwable);
  }
  return reader.read(buffer,off,len);
}

@ Override public int read ( final char [ ] buffer , final int off , final int len ) throws IOException { if ( throwable instanceof IOException ) { throw ( IOException ) throwable ; } else if ( throwable != null ) { throw new IOException ( "" , throwable ) ; } return reader . read ( buffer , off , len ) ; }
reads parsed text from the pipe connected to the parsing thread . fails if the parsing thread has thrown an exception .
