On Thu, 31 Oct 2024 14:09:52 GMT, Lukasz Kostyra <lkost...@openjdk.org> wrote:

>> This PR removes uses of `AccessControler.doPrivileged()` from 
>> `javafx.graphics` package. All uses of `doPrivileged()` were removed 
>> _excluding_ `com.sun.javafx.tk` and `com.sun.ui.glass` subpackages - those 
>> are handled by [JDK-8342453](https://bugs.openjdk.org/browse/JDK-8342453) 
>> (already completed) and 
>> [JDK-8342454](https://bugs.openjdk.org/browse/JDK-8342454) respectively.
>> 
>> Most of these changes are fairly straightforward and follow the standard 
>> replacement from `AccessController.doPrivileged(LAMBDA)` to just simply 
>> `LAMBDA` with a couple exceptions:
>> 
>> - `StyleManager.java` where `loadStylesheet()` followed two steps - 
>> attempting straightforward stylesheet load via 
>> `loadStylesheetUnPrivileged()` and in case of `AccessControlException` 
>> retrying the load via `AccessController.doPrivileged` with read-only access 
>> to stylesheet JAR. Now that `doPrivileged` is deprecated and not used 
>> anymore, `loadStylesheetUnPrivileged()` was always successful and the 
>> fallback became essentially dead code. Fallback was removed and 
>> `loadStylesheetUnPrivileged()` was renamed to `loadStylesheet()`.
>> - `Scene.java` integrates with `com.sun.javafx.tk` so only straightforward 
>> `doPrivileged()` calls were removed - `AccessControlContext` remained, as it 
>> needs to be removed from both tk and Scene via a follow-up 
>> ([JDK-8342993](https://bugs.openjdk.org/browse/JDK-8342993))
>> 
>> Building graphics module now produces less warnings than before this change 
>> with no new warning messages (all warnings refer to the use of `Unsafe` 
>> which is out of scope of this change).
>
> Lukasz Kostyra has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Scene: Remove missed doPrivileged use

modules/javafx.graphics/src/main/java/com/sun/javafx/css/StyleManager.java line 
1063:

> 1061:             ** That way there in no information leaked.
> 1062:             */
> 1063:             catch (java.net.URISyntaxException e) {

are you sure the change is equivalent?

For example, the old code catches `URISyntaxException` and 
`PrivilegedActionException` returning `null`, but the new code does not, unless 
I am mistaken.

modules/javafx.graphics/src/main/java/com/sun/javafx/font/Disposer.java line 62:

> 60:             tgn != null;
> 61:             tg = tgn, tgn = tg.getParent());
> 62:         Thread t = new Thread(tg, disposerInstance, "Prism Font 
> Disposer");

very minor: I would have separated `for()` from L62 by a newline.  This `for` 
is already confusing enough.

modules/javafx.graphics/src/main/java/com/sun/javafx/font/PrismFontFile.java 
line 137:

> 135:                 isCopy = isDecoded = false;
> 136:             } catch (Exception e) {
> 137:             } finally {

even though the code change is equivalent, it will print "temp file not 
deleted" followed by "temp file deleted".

modules/javafx.graphics/src/main/java/com/sun/javafx/util/ModuleHelper.java 
line 39:

> 37: 
> 38:     static {
> 39:         verbose = Boolean.getBoolean("javafx.verbose");

minor I would rather moved it to L36

modules/javafx.graphics/src/main/java/com/sun/javafx/util/Utils.java line 689:

> 687:                 (PrivilegedAction<List<Window>>) () -> 
> Window.getWindows(),
> 688:                 null,
> 689:                 ACCESS_WINDOW_LIST_PERMISSION);

@kevinrushforth once we finish removing AccessController, do we need to remove 
`FXPermissions` class?

modules/javafx.graphics/src/main/java/com/sun/marlin/MarlinProperties.java line 
271:

> 269: 
> 270:     // system property utilities
> 271:     @SuppressWarnings("removal")

really, this should be in Utils.

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

PR Review Comment: https://git.openjdk.org/jfx/pull/1619#discussion_r1824664938
PR Review Comment: https://git.openjdk.org/jfx/pull/1619#discussion_r1824770375
PR Review Comment: https://git.openjdk.org/jfx/pull/1619#discussion_r1824780352
PR Review Comment: https://git.openjdk.org/jfx/pull/1619#discussion_r1824784460
PR Review Comment: https://git.openjdk.org/jfx/pull/1619#discussion_r1824787462
PR Review Comment: https://git.openjdk.org/jfx/pull/1619#discussion_r1824788989

Reply via email to