[ 
https://issues.apache.org/jira/browse/IO-480?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14578580#comment-14578580
 ] 

Matt Kusnierz commented on IO-480:
----------------------------------

If the intended use of this method is to perform a best efforts attempt to 
close the inputStream and not to worry about exceptions; doesn't it make sense 
to simply catch Exceptions instead of just IOExceptions. I agree that in this 
case the NullPointerException should not be thrown in the first place; so the 
core java FilterInputStream; and/or the JarURLConnectopm$JarUrlInputStream 
sub-class is at fault; but there could be any number of other poor inputStream 
implementations out there; and closing them quietly is still the goal of this 
utility method. Otherwise the user may be forced to re-wrap the call to 
closeQuietly with another try-catch; which makes closeQuietly redundant.

> IOUtils.closeQuietly can throw NullPointerException
> ---------------------------------------------------
>
>                 Key: IO-480
>                 URL: https://issues.apache.org/jira/browse/IO-480
>             Project: Commons IO
>          Issue Type: Bug
>          Components: Utilities
>    Affects Versions: 2.4
>            Reporter: Matt Kusnierz
>   Original Estimate: 10m
>  Remaining Estimate: 10m
>
> The IOUtils#closeQuietly method in its javadoc suggests that ANY exceptions 
> will be ignored. This is not the case, as the code only catches IOExceptions. 
> As this example stack trace shows, it is possible for some InputStreams to 
> throw NullPointerExceptions during close:
> java.lang.NullPointerException: null
>       at java.io.FilterInputStream.close(FilterInputStream.java:155) 
> ~[na:1.6.0_35]
>       at 
> sun.net.www.protocol.jar.JarURLConnection$JarURLInputStream.close(JarURLConnection.java:90)
>  ~[na:1.6.0_35]
>       at org.apache.commons.io.IOUtils.closeQuietly(IOUtils.java:281) 
> ~[commons-io-2.1.jar:2.1]
>       at org.apache.commons.io.IOUtils.closeQuietly(IOUtils.java:224) 
> ~[commons-io-2.1.jar:2.1]
> Close quietly should do as advertised/suggested and catch all Exceptions.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to