On Fri, 24 Mar 2023 05:20:34 GMT, Jaikiran Pai <[email protected]> wrote:
>>> I don't think we should be exporting that package. Instead, the `JarIndex`
>>> class can be updated to do `AccessController.doPrivileged(...)`.
>>
>> Nice, I'll try that!
>>
>> Do you know if the `jar` tool allows running with a `SecurityManager`? If
>> not, we could perhaps simply use `System.getProperty`?
>
>> > I don't think we should be exporting that package. Instead, the `JarIndex`
>> > class can be updated to do `AccessController.doPrivileged(...)`.
>>
>> Nice, I'll try that!
>>
>> Do you know if the `jar` tool allows running with a `SecurityManager`? If
>> not, we could perhaps simply use `System.getProperty`?
>
> I had a look at the existing code in the jar tool. It appears that it doesn't
> run with a SecurityManager - there's direct calls to `System.getProperty()`
> in some places in the code. So I think just calling `System.getProperty()`
> should be fine. When this PR goes into a published state for review, I'm sure
> others who have more knowledge about this area will help decide.
@jaikiran
Looking into how the deprecation warning could be implemented, it seems `jar`
has some existing infrastructure for deprecation warnings, so the deprecation
could be implemented with the following small patch:
Subject: [PATCH] Remove JarIndex default constructor
---
Index: src/jdk.jartool/share/classes/sun/tools/jar/Main.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/src/jdk.jartool/share/classes/sun/tools/jar/Main.java
b/src/jdk.jartool/share/classes/sun/tools/jar/Main.java
--- a/src/jdk.jartool/share/classes/sun/tools/jar/Main.java (revision
fee0da27be832a7413886ddd2cfd5586bfd2e37a)
+++ b/src/jdk.jartool/share/classes/sun/tools/jar/Main.java (date
1679654673667)
@@ -396,6 +396,9 @@
}
}
} else if (iflag) {
+ if (!suppressDeprecateMsg) {
+ warn(formatMsg("warn.flag.is.deprecated", "-i"));
+ }
String[] files = filesMap.get(BASE_VERSION); // base entries
only, can be null
genIndex(rootjar, files);
} else if (dflag) {
This gives the following warning message on use:
% build/macosx-x86_64-server-release/images/jdk/bin/jar --generate-index
file.jar
Warning: The -i option is deprecated, and is planned for removal in a future
JDK release
Which may be overridden by using `-XDsuppress-tool-removal-message`:
% build/macosx-x86_64-server-release/images/jdk/bin/jar --generate-index
file.jar -XDsuppress-tool-removal-message
-------------
PR Comment: https://git.openjdk.org/jdk/pull/13158#issuecomment-1482612735