Hi Pankaj,
I'd like to confirm:
793 int width = image.getWidth(imageObserver);
794 if (image != null) {
the image is not null at line 793, and as the side effect of calling
image.getWidth(imageObserver), image is set to null, right?
This requires a comment, doesn't it? Otherwise the condition in if looks
always true. Is it possible that image becomes null before getWidth() is
called?
Can we implement this differently?
I guess we'll also get NPE if src attribute of <image> tag is not an image.
I agree with Sergey, try-catch are not necessary in this case: you
declared that main throws Exception. Any exception indicates the test
failed.
Since JLabel is a Swing component, you should create its instance on
EDT. SwingUtilities.invokeAndWait would do the job.
Regards,
Alexey
On 10/10/2019 21:35, Sergey Bylokhov wrote:
Hi, Pankaj.
I guess that the problem is that the "image" is accessed w/o
synchronization on "this"
like in other places, but it will be necessary to add one null check
before usage of "image".
Also, it is not necessary to have a try/catch block in the test, just
call the problematic method
On 10/10/19 11:01 am, Pankaj Bansal wrote:
Hi All,
Please review the following fix for jdk14.
Bug: https://bugs.openjdk.java.net/browse/JDK-8230235
Webrev: http://cr.openjdk.java.net/~pbansal/8230235/webrev00/
Issue:
Rendering HTML with empty img attribute and documentBaseKey set
causes NPE
Fix:
The issues is introduced after
https://bugs.openjdk.java.net/browse/JDK-8218674.
When the documentBaseKey is set, but img tag is not set, the image
URL may not be complete and may not point to actual image. In
ImageView class, when getWidth(ImageObserver) is called from the
updateImageSize, it checks if image source is null and adds the
ImageObserver (ImageView.ImageHandler) on the Image and sets the
ImageView image as null. When getHeight is called, as image is set to
null, it results in NPE.
We should verify that image is not null.
Testing:
I have tested it on Window, Linux and Mac.
Regards,
Pankaj Bansal