Hi Phil,
Thanks for the review.
I have made following changes :
1) I am using File.createTempFile() both in case of read and write as a result
of which we don't need external .png file which was there in previous
webrev.
2) Also since I am using temporary file for read(url), I observed one more bug
where I am not able to delete temporary file referenced by URL. This is
happening because we are using the input url with openStream() API in
ImageIO.read() and when createImageInputStream() returns null we are not
closing the stream. So I have added additional code to close this stream so
that temporary file can be deleted.
3) Corrected some typo's in test case comments.
Please find updated webrev for review :
http://cr.openjdk.java.net/~jdv/8044289/webrev.01/
Thanks,
Jay
From: Philip Race
Sent: Wednesday, March 16, 2016 10:59 PM
To: Jayathirth D V
Cc: [email protected]
Subject: Re: Review Request for JDK-8044289 : In ImageIO.read() and write() NPE
is not handled properly for stream
The test writes out into "test.src".
I believe that you should treat that as a "read-only" location.
Write to a tempfile (File.createTempFile()) or TESTCLASSES.
-phil.
On 3/15/16, 10:50 PM, Jayathirth D V wrote:
Hi Phil,All
Please review the following fix in JDK9:
Bug : https://bugs.openjdk.java.net/browse/JDK-8044289
Webrev : HYPERLINK
"http://cr.openjdk.java.net/%7Ejdv/8044289/webrev.00/"http://cr.openjdk.java.net/~jdv/8044289/webrev.00/
Issue : When createImageInputStream() or createImageOutputStream returns null
in ImageIO.read() or ImageIO.write() we are seeing NPE as it stream is used
further without null check.
Root cause : "stream" is used without checking whether it is null or not.
Solution : Handle null pointer of stream and throw IIOException.
Test case contains all possible scenarios where createImageInputStream() or
createImageOutputStream can return null.
Thanks,
Jay