I'm afraid it's not worth to build such a automatic tool.
Different resource clients uses different resource classes which have
different resource items, so such a tool must understand which resource
client is using which resource class, which is not easy or even
possible. Or we can hard code this relationship in the tool, but this
will make the tool prone to error in case any code changes.
So I suggest to check it manually every time we change any code in this
area, of course manual check can be partially automated by some script
but I don't think it's worth to develop a dedicated tool to do it as you
still need manual check any way.
Thank you
-Hamlin
On 2017/7/12 15:59, Weijun Wang wrote:
Great work! Thanks for going deep on this issue.
Is it possible to change your manual check into an automatic test? I know
sources might not be available when running a test, but if something like
${test.src}/../../../src/java.base/share/classes/sun/security/util/ exists it
can be a good hint that source codes are available.
Feel free to ignore my suggestion if this is useless. I don’t actually know if
the src directory is there in mach5 and JPRT tests.
--Max
On Jul 12, 2017, at 2:07 PM, Hamlin Li <[email protected]> wrote:
I manually checked *Resources.java under sun/security and usage of them, my investigation shows that overall
quality of "static" resource usage is good (by "static" I mean it uses hard code resource
string like rb.getString("xxxx") rather than rb.getString(aStringVariable) ), except of this issue
and another new issue: https://bugs.openjdk.java.net/browse/JDK-8184234, in which similar issue in
sun.security.provider.AuthPolicyFile$PolicyEntry is reported.
For new issue JDK-8184234, it existed since jdk6 to 10.
Thank you
-Hamlin
On 2017/7/12 11:36, Hamlin Li wrote:
On 2017/7/12 11:06, Weijun Wang wrote:
On Jul 12, 2017, at 11:03 AM, Hamlin Li <[email protected]> wrote:
Hi Max,
On 2017/7/12 10:50, Weijun Wang wrote:
Change looks fine.
Please remember to add a noreg-trivial label.
Added the label, and will push the change.
Also, can you do some more investigation when this starts to happen? The bug
says affected versions are 9 and 10 but PolicyFile.java has been there long
long ago. Was there a regression?
The same code is there since jdk6 (http://hg.openjdk.java.net/jdk6/jdk6/jdk) ,
I did not check jdk5...
I don't think it's a regression, it should be just a missing resource, as the
failure only occurs when accessing very details of
sun.security.provider.PolicyFile by reflection, I guess people seldom do that.
Is it easy to verify?
I asked if it’s a regression because I remember some time last year there is
some rearrangement of codes in this area.
I just checked jdk6, 7, 8. You're right, there is a regression in jdk 8.
In summary,
in jdk6, the issue exists;
in jdk7 some resources were added which I believe fixed this issue; (too
many, I can not list it here.)
in jdk8 the added resources were totally removed, and another 2 resources are
added:
{"duplicate.keystore.domain.name","duplicate keystore domain name:
{0}"},
{"duplicate.keystore.name","duplicate keystore name: {0}"},
But currently I don't know how big the change impacts, as there are many
resource usage under sun/security which use
sun/security/util/[Resources|AuthResources].java
sun/security/util/Resources in jdk6,
http://hg.openjdk.java.net/jdk6/jdk6/jdk/file/62df9772b849/src/share/classes/sun/security/util/Resources.java
sun/security/util/Resources in jdk7,
http://hg.openjdk.java.net/jdk7/jdk7/jdk/file/9b8c96f96a0f/src/share/classes/sun/security/util/Resources.java
sun/security/util/Resources in jdk8,
http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/687fd7c7986d/src/share/classes/sun/security/util/Resources.java
Thank you
-Hamlin
--Max
Thank you
-Hamlin
Thanks
Max
On Jul 12, 2017, at 10:28 AM, Hamlin Li <[email protected]> wrote:
Would you please review the below patch?
bug: https://bugs.openjdk.java.net/browse/JDK-8184165
webrev: http://cr.openjdk.java.net/~mli/8184165/webrev.00/
Thank you
-Hamlin