@Override
  public void close() {
    synchronized (this) {
      notifyAll();
    }

    super.close();
  }
 @Override
 public void clearInput() throws IOException {
   lockRead.lock();
   try {
     super.clearInput();
   } finally {
     lockRead.unlock();
   }
 }