On Thu, 3 Jun 2021 23:34:38 GMT, Kevin Rushforth <[email protected]> wrote:
> This PR adds the necessary `@SuppressWarnings("removal")` annotations for the
> recently-integrated security manager deprecation, [JEP
> 411](https://openjdk.java.net/jeps/411). See openjdk/jdk#4073.
>
> There are four commits:
>
> 1. 678b026 : A patch generated by @wangweij to add annotations to the runtime
> (`modules/*/src/main/java`) using the same automated tooling that he used as
> part of the implementation of JEP 411.
> 2. 9698e87 : Same as above for the tests.
> 3. 1c42cf8 : Manually removes a pair of unused imports, one of which (a
> static import) was causing a removal warning.
> 4. 4f87d18 : Manually reduced the scope of the annotation where it was added
> to an entire class, or to a large method where only a small part of the
> method uses a deprecated method. This was done using similar techniques to
> the following fixes that Weijun did in openjdk/jdk#4172.
>
> The first two commits represent the bulk of the changes. Other than scanning
> to ensure that there are no obvious errors, and testing, they probably don't
> need the same level of scrutiny as the manual changes do.
>
> I tested this on all three platforms by doing a build / test with `JDK_HOME`
> set to a local JDK 17 ea build that includes the fix for JEP 411. I ran the
> build with `gradle -PLINT=removal` and verified that there were removal
> warnings for the security manager APIs without this fix and none with this
> fix.
>
> NOTE: The following files under `modules/javafx.web/src/android` and
> `modules/javafx.web/src/ios` were not processed by the automated tool. As I
> have no way to compile them, I chose not to manually fix them either, but
> doing so would be trivial as a follow-up fix if desired.
>
>
> modules/javafx.web/src/android/java/com/sun/webkit/Timer.java
> modules/javafx.web/src/android/java/com/sun/webkit/WebPage.java
> modules/javafx.web/src/android/java/javafx/scene/web/WebEngine.java
> modules/javafx.web/src/ios/java/javafx/scene/web/ExportedJavaObject.java
> modules/javafx.web/src/ios/java/javafx/scene/web/HTMLEditorSkin.java
> modules/javafx.web/src/ios/java/javafx/scene/web/JS2JavaBridge.java
> modules/javafx.web/src/ios/java/javafx/scene/web/WebEngine.java
All change looks good. Some personal style preferences comments.
modules/javafx.fxml/src/main/java/com/sun/javafx/fxml/ModuleHelper.java line 41:
> 39:
> 40: static {
> 41: verbose =
> AccessController.doPrivileged((PrivilegedAction<Boolean>) () ->
You can merge this assignment with the declaration on line 38. Or you can keep
this so the check of verbose is in the same block with its assignment.
modules/javafx.graphics/src/main/java/com/sun/glass/ui/Screen.java line 43:
> 41:
> 42: static {
> 43: @SuppressWarnings("removal")
Combine assignment and declaration?
modules/javafx.graphics/src/main/java/com/sun/glass/ui/monocle/LinuxArch.java
line 36:
> 34:
> 35: static {
> 36: bits = AccessController.doPrivileged((PrivilegedAction<Integer>)
> () -> {
Combine?
modules/javafx.graphics/src/main/java/javafx/scene/Node.java line 9969:
> 9967: accessible =
> Application.GetApplication().createAccessible();
> 9968: accessible.setEventHandler(new Accessible.EventHandler() {
> 9969: @SuppressWarnings("removal")
Was this "deprecation" already useless before this change?
modules/javafx.web/src/main/java/com/sun/webkit/network/HTTP2Loader.java line
415:
> 413: // Run the HttpClient in the page's access control context
> 414: @SuppressWarnings("removal")
> 415: CompletableFuture<Void> tmpResponse =
> AccessController.doPrivileged((PrivilegedAction<CompletableFuture<Void>>) ()
> -> {
Is "var" enough?
modules/javafx.web/src/main/java/com/sun/webkit/network/NetworkContext.java
line 245:
> 243: private static final Permission modifyThreadPerm = new
> RuntimePermission("modifyThread");
> 244:
> 245: @SuppressWarnings("removal")
Maybe move this onto the 1st line inside the method?
-------------
Marked as reviewed by weijun (no project role).
PR: https://git.openjdk.java.net/jfx/pull/528