code: public synchronized void push(@Nullable T item) {
          if( waiting == null ) {
              throw new IllegalStateException("Invalid attempt to add an item to a completed list.");
          }
          if( filter != null ) {
              try {
                  if( !filter.filter(item) ) {
                      return;
                  }
              }
              catch( Throwable t ) {
                  logger.error("[" + this + "] Error filtering " + item + ": " + t.getMessage());
                  Exception e;
                  
                  if( t instanceof Exception ) {
                      e = (Exception)t;
                  }
                  else {
                      e = new RuntimeException(t);
                  }
                  setLoadException(e);
                  return;
              }
          }
          waiting.add(item);
          lastTouch = System.currentTimeMillis();
          notifyAll();
      }
docs: Pushes a new item into the jiterator. The new item will be added to the end of the jiterator.
  @param item the item to be added
  @throws IllegalStateException an attempt was made to push an item on a jiterator marked complete