<AWT Dev> [9] Review request for 8132706 [macosx] Toolkit.getImage() throws NPE for null URL

Sergey Bylokhov Sergey.Bylokhov at oracle.com
Tue Apr 19 12:14:45 UTC 2016


On 18.04.16 21:25, Alexander Scherbatiy wrote:
>>>> The spec of checkImage/prepareImage both return incorrect status in
>>>> case of null, seems both should throw NPE also. otherwise they report
>>>> null as a valid fully loaded image.

>    The question under discussion is not about null images but about a
> ToolkitImage which has File/URLImageSource with null file/url because
> the Toolkit.getImage((String)null) returns non-null ToolkitImage which
> source points to a null file.

I just highlighted in my previous message that these two methods should 
be investigated also.

>>>    For example the call of Toolkit.getImage(file) method with path which
>>> does not point to a file does not lead to the FileNotFoundException. The
>>> ToolkitImage is created and just wait for the time when it is loaded.
>>> Only during loading the ImageObserver is called with ABORT info flag.
>>
>> There is a difference between incorrect parameters and some loading
>> errors. For example createImage(byte[] imagedata,...) throws an
>> exception because there is no sense to load the image from null array,
>> the same for URL/File. ImageIO uses the same scheme(throws an
>> exception if it is obvious that load of the image data will fail).
>> Passing a null value to this api is a bug in the program, and it will
>> be good to report it early.
>>
>>>
>>>     The case with null path or URL should follow the same ToolkitImage
>>> errors handling rule.
>>
>>
>>>
>>>    Thanks,
>>>    Alexandr.
>>>
>>>
>>>>
>>>>>
>>>>> -phil.
>>>>>
>>>>> On 04/15/2016 11:47 AM, Alexander Scherbatiy wrote:
>>>>>> On 15/04/16 22:11, Phil Race wrote:
>>>>>>> And it prints the stack trace ??
>>>>>>>
>>>>>>> This gets even messier.
>>>>>>>
>>>>>>> Is there anything we can do to have sensible specification of
>>>>>>> what happens with null that isn't likely to cause (much) harm ?
>>>>>>
>>>>>>  I see only two options. Do not throw the NPE as it was before and
>>>>>> throw the NPE.
>>>>>>  The second one can break some old applications which do not expect
>>>>>> that the exception can be thrown in this case.
>>>>>>
>>>>>>  If the second option is acceptable probably the Toolkit.getImage()
>>>>>> javadoc can be updated.
>>>>>>
>>>>>>  Thanks,
>>>>>>  Alexandr.
>>>>>>
>>>>>>>
>>>>>>> -phil.
>>>>>>>
>>>>>>>
>>>>>>> On 04/15/2016 11:10 AM, Alexander Scherbatiy wrote:
>>>>>>>> On 15/04/16 20:30, Sergey Bylokhov wrote:
>>>>>>>>> How the object of URLImageSource(null) will be useful? I guess we
>>>>>>>>> will get some unspecified NPE exceptions if will try to call its
>>>>>>>>> methods?
>>>>>>>>   I know nothing about the URLImageSource(null) usefulness but
>>>>>>>> ImageFetcher swallows the NPE during the image loading in the
>>>>>>>> fetchloop() method:
>>>>>>>> -------
>>>>>>>>             try {
>>>>>>>>                 src.doFetch();
>>>>>>>>             } catch (Exception e) {
>>>>>>>>                 System.err.println("Uncaught error fetching
>>>>>>>> image:");
>>>>>>>>                 e.printStackTrace();
>>>>>>>>             }
>>>>>>>> -------
>>>>>>>>
>>>>>>>>   Thanks,
>>>>>>>>   Alexandr.
>>>>>>>>>
>>>>>>>>> On 15.04.16 18:02, Alexander Scherbatiy wrote:
>>>>>>>>>>
>>>>>>>>>> Hello,
>>>>>>>>>>
>>>>>>>>>> Could you review the fix:
>>>>>>>>>>    bug: https://bugs.openjdk.java.net/browse/JDK-8132706
>>>>>>>>>>    webrev: http://cr.openjdk.java.net/~alexsch/8132706/webrev.00
>>>>>>>>>>
>>>>>>>>>>    The fix makes the Toolkit.getDefaultToolkit().getImage(URL)
>>>>>>>>>> return a
>>>>>>>>>> ToolkitImage based on URLImageSource with null url as it was
>>>>>>>>>> before the
>>>>>>>>>> fix JDK-8011059.
>>>>>>>>>>
>>>>>>>>>>    Thanks,
>>>>>>>>>>    Alexandr.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>
>>
>>
>


-- 
Best regards, Sergey.


More information about the awt-dev mailing list