[ https://issues.apache.org/jira/browse/IO-868?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17927113#comment-17927113 ]
Gary D. Gregory commented on IO-868: ------------------------------------ Hello [~reschke] and thank you for the feedback. I improved the Javadoc in git master as follows: {code:java} /** * Builds a new {@link BoundedInputStream}. * <p> * You must set an aspect that supports {@link #getInputStream()}, otherwise, this method throws an exception. * </p> * <p> * If you start from an input stream, an exception can't be thrown, and you can call {@link #getUnchecked()} instead. * </p> * <p> * This builder uses the following aspects: * </p> * <ul> * <li>{@link #getInputStream()} (the target aspect)</li> * <li>{@link #getAfterRead()}</li> * <li>{@link #getCount()}</li> * <li>{@link #getMaxCount()}</li> * <li>{@link #getOnMaxCount()}</li> * <li>{@link #isPropagateClose()}</li> * </ul> * * @return a new instance. * @throws IllegalStateException if the {@code origin} is {@code null}. * @throws UnsupportedOperationException if the origin cannot be converted to an {@link InputStream}. * @throws IOException if an I/O error occurs converting to an {@link InputStream} using {@link #getInputStream()}. * @see #getInputStream() * @see #getUnchecked() */ @Override public BoundedInputStream get() throws IOException {code} Would you please review and indicate if you can think of improvements? After that, I can make similar changes to other get() methods. > BoundedInputStream builder() can throw IOException > -------------------------------------------------- > > Key: IO-868 > URL: https://issues.apache.org/jira/browse/IO-868 > Project: Commons IO > Issue Type: Wish > Components: Streams/Writers > Reporter: Julian Reschke > Priority: Major > > See > > https://commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/input/BoundedInputStream.Builder.html#get() > This proved to be problematic when removing Guava usage from a project. > Guava's constructor for CountingInputStream doesn't declare a checked > exception, nor do the constructors of commons-io's CountingInputStream or > BoundedInputStream. > Using the recommended builder however does in the "get()" method. Why? > This makes it harder to convert existing code that does not expect an > exception here. What is the recommendation? Catch and wrap into a > RuntimeException? > Minimally it would good if the Javadoc explained under which condition the > IOException could occur. -- This message was sent by Atlassian Jira (v8.20.10#820010)