<Swing Dev> [9] Review Request: 8149879 Examine UIDefaults::addResourceBundle(String bundleName) with resource encapsulation

Alexandr Scherbatiy alexandr.scherbatiy at oracle.com
Thu Dec 1 11:04:11 UTC 2016


The fix looks good to me.

I suggest to investigate the case where old applications can be broken 
and provide a public API for all valid cases.

Thanks,
Alexandr.

On 11/30/2016 7:30 PM, Sergey Bylokhov wrote:
> On 29.11.16 17:21, Alexandr Scherbatiy wrote:
>> On 11/28/2016 7:41 PM, Sergey Bylokhov wrote:
>>> Hello.
>>>
>>> Please review the fix for jdk9.
>>>
>>> This fix improve encapsulation of java.desktop module. After the fix
>>> the method "UIDefaults::addResourceBundle()" will not be able to
>>> register resource bundles which are located in the java.desktop
>>> module. Only the java.desktop module itself will be able to use such
>>> bundles.
>>   - Will it break existed applications?
>
> The risk exists, if the application(or custom l&f) uses resource 
> bundle from the java.desktop module. But these bundles were not a part 
> of specification(the are located in non-public packages) and a content 
> is not specified as well. The possible workaround for this is to have 
> an application/L&f specific bundle. Or to use UIDefault.put(key,value) 
> to use some non-default values.
>
>>   - Is it a common case that some applications register resource bundles
>> from JDK?
>
> I do not found the usage of UID.addResourceBundle() which register an 
> internal bundles.
>
>>   - What is the reason that resource bundles from JDK are not supposed
>> to be registered by external applications?
>
> This is internal data which are not exported by the public api in thd 
> java.desktop module.
>
>>   - Is it applicable for all JDK bundles or it should be allowed to load
>> bundles for public L&Fs like Metal and not for internal (Windows)?
>
> It is applicable for all, because we do not have the public bundles.
>
>>   - Was there the similar issue before the modularization? For example
>> an application is not supposed to load internal Java resource bundles if
>> the security manager is set.
>
> Yes, there was such restriction.
>
>
>




More information about the swing-dev mailing list