code: public E peek() {
  		lock.lock();
  		try {
  			if (open) {
  				if (elements.size() > 0) {
  					return elements.getFirst();
  				} else {
  					return null;
  				}
  			} else {
  				throw new IllegalStateException("queue is closed");
  			}
  		} finally {
  			lock.unlock();
  		}
  	}
docs: Returns the queue's next element without removing it, if the queue is non-empty.
  Otherwise, returns null.
  
  <p>The method throws an {@code IllegalStateException} if the queue is closed.
  Checking whether the queue is open and getting the next element is one atomic operation.
  
  <p>This method never blocks.
  
  @return The queue's next element, or null, if the queue is empty.
  @throws IllegalStateException Thrown, if the queue is closed.