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

Alexander Scherbatiy alexandr.scherbatiy at oracle.com
Fri Apr 15 19:06:05 UTC 2016


On 15/04/16 22:49, Phil Race wrote:
> I think that even if no exception is thrown we ought to document what 
> happens.
> Which of course means that we need to be sure that it does happen :-)
> And the difference depending on SM may be hard to defend.
> And I am referring to both methods, not just the URL one.

Toolkit.getDefaultToolkit().getImage((String) null) has the same 
swallowed exception in the ImageFetcher:
------------
Uncaught error fetching image:
java.lang.NullPointerException
     at java.io.FileInputStream.<init>(FileInputStream.java:124)
     at java.io.FileInputStream.<init>(FileInputStream.java:87)
     at sun.awt.image.FileImageSource.getDecoder(FileImageSource.java:53)
     at 
sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:263)
     at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:205)
     at sun.awt.image.ImageFetcher.run(ImageFetcher.java:169)
------------

May be the right behavior should be that ERROR infoflag is reported to 
the ImageObserver for this case.

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.
>>>>>
>>>>>
>>>>
>>>
>>
>



More information about the awt-dev mailing list