RFR: 8344063: Remove doPrivileged calls from swing classes in the java.desktop module

Phil Race prr at openjdk.org
Thu Nov 14 19:34:03 UTC 2024


On Thu, 14 Nov 2024 18:29:29 GMT, altrisi <duke at openjdk.org> wrote:

>> This is the first of a number of PRs to remove doPrivileged uses in client libraries.
>> These calls are obsolete dead code after JEP 486.
>> 
>> I have run all our automated tests, including JCK tests, and manually tested SwingSet.
>> 
>> One thing I might have missed in a couple of cases is that it seems that javac doesn't seem to notice if you leave an un-needed SuppressWarnings("removal") annotation. 
>> 
>> As per the bug report I am limiting (as much as I can) what I touch here to be just the immediate consequences of removing doPrivileged calls. These changes are plenty enough as it is.
>
> src/java.desktop/share/classes/javax/swing/plaf/basic/BasicLookAndFeel.java line 2186:
> 
>> 2184:         AWTEventHelper() {
>> 2185:             super();
>> 2186:             run();
> 
> I don't think this method being called `run()` still makes sense when just being called from the constructor, it used to make (more) sense when it was an override from PrivilegedAction.

I thought about that, but I was limiting the changes.

> src/java.desktop/share/classes/javax/swing/plaf/metal/MetalLookAndFeel.java line 150:
> 
>> 148:                 @SuppressWarnings("removal")
>> 149:                 String systemFonts = AccessController.doPrivileged(
>> 150:                     new GetPropertyAction("swing.useSystemFontSettings"));
> 
> Missed the GetPropertyAction import for this file (can't annotate there).

another one for a follow-up

> src/java.desktop/share/classes/javax/swing/text/AbstractDocument.java line 150:
> 
>> 148:         if (defaultI18NProperty == null) {
>> 149:             // determine default setting for i18n support
>> 150:             String o = System.getProperty(I18NProperty);
> 
> I believe the whole handling of `I18NProperty` (this line and the if-else below) can be simplified to Boolean.getBoolean, similar to what has been done in other places in this PR.

I noticed but I did not want to change the pattern any more than I was forced to, so I left it.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/22090#discussion_r1842783019
PR Review Comment: https://git.openjdk.org/jdk/pull/22090#discussion_r1842785690
PR Review Comment: https://git.openjdk.org/jdk/pull/22090#discussion_r1842785165


More information about the client-libs-dev mailing list