@Override public void close(){
  if (parserThread.isAlive()) {
    parserThread.interrupt();
  }
  if (readerThread.isAlive()) {
    readerThread.interrupt();
  }
  try {
    lineReader.close();
  }
 catch (  IOException e) {
    logger.warn(e);
  }
  try {
    pipeOut.close();
  }
 catch (  IOException e) {
    logger.warn(e);
  }
  try {
    pipeIn.close();
  }
 catch (  IOException e) {
    logger.warn(e);
  }
}

@ Override public void close ( ) { if ( parserThread . isAlive ( ) ) { parserThread . interrupt ( ) ; } if ( readerThread . isAlive ( ) ) { readerThread . interrupt ( ) ; } try { lineReader . close ( ) ; } catch ( IOException e ) { logger . warn ( e ) ; } try { pipeOut . close ( ) ; } catch ( IOException e ) { logger . warn ( e ) ; } try { pipeIn . close ( ) ; } catch ( IOException e ) { logger . warn ( e ) ; } }
closes all the underlying resources .
