code: synchronized void validate() throws IllegalArgumentException {
      if (size < 1) {
        throw new IllegalArgumentException(
            "Size must be at least 1, but was " + size);
      }
      if (allocator == null) {
        throw new IllegalArgumentException("Allocator cannot be null");
      }
      if (expiration == null) {
        throw new IllegalArgumentException("Expiration cannot be null");
      }
      if (threadFactory == null) {
        throw new IllegalArgumentException("ThreadFactory cannot be null");
      }
    }
docs: Check that the configuration is valid in terms of the *standard
  configuration*. This method is useful in the
  Pool implementation constructors.
  @throws IllegalArgumentException If the size is less than one, if the
  {@link Expiration} is `null`, if the {@link Allocator} is `null`, or if
  the ThreadFactory is `null`.