public void put(E item) throws InterruptedException {
  if (!done.get()) {
    queue.put(item);
  }
}

public void put ( E item ) throws InterruptedException { if ( ! done . get ( ) ) { queue . put ( item ) ; } }
adds another item to the queue , blocking while the queue is full .
