On Fri, 4 Jun 2021 14:37:05 GMT, Weijun Wang <[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
>
> 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.
I think I'll keep this one as is to minimize changes.
> modules/javafx.graphics/src/main/java/com/sun/glass/ui/Screen.java line 43:
>
>> 41:
>> 42: static {
>> 43: @SuppressWarnings("removal")
>
> Combine assignment and declaration?
Good idea. This allows the static block to be removed.
> 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?
Good idea. This allows the static block to be removed.
> 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?
Yes, I'll change it.
-------------
PR: https://git.openjdk.java.net/jfx/pull/528