RFR: 8165276: Spec states to invoke the premain method in an agent class if it's public but implementation differs [v12]
Serguei Spitsyn
sspitsyn at openjdk.java.net
Fri Jan 22 11:27:38 UTC 2021
> This change have been already reviewed by Mandy, Sundar, Alan and David.
> Please, see the jdk 15 review thread:
> http://mail.openjdk.java.net/pipermail/serviceability-dev/2020-June/031998.html
>
> Now, the PR approval is needed.
> The push was postponed because the CSR was not approved at that time (it is now):
> https://bugs.openjdk.java.net/browse/JDK-8248189
> Investigation of existing popular java agents was requested by Joe.
> ----------
>
> The java.lang.instrument spec:
> https://docs.oracle.com/en/java/javase/15/docs/api/java.instrument/java/lang/instrument/package-summary.html
>
> Summary:
> The java.lang.instrument spec clearly states:
> "The agent class must implement a public static premain method
> similar in principle to the main application entry point."
> Current implementation of sun/instrument/InstrumentationImpl.java
> allows the premain method be non-public which violates the spec.
> This fix aligns the implementation with the spec.
>
> Testing:
> A mach5 run of jdk_instrument tests is in progress.
Serguei Spitsyn has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 12 additional commits since the last revision:
- Merge
- 1. Prperly reverted fixes in 3 tests; 2. Got rid of <inherited> term in tests summary comment
- @summary of some negative tests is corrected
- 1. Suppress premain method check only if agent class is in unnamed module; 2. minor tests cleanup
- added to NegativeAgentRunner exit value check to be non-zero
- 1. Replaced AgentJarBuilder with JavaAgentBuilder; 2. Removed unneeded sun.tools.jar imports
- fixed trailing spaces
- (1) Update premain/agentmain method lookup; (2) refactored tests to get rid of shell scripts
- added 8165276 to @bug list of impacted tests
- (1)Fix comment in InstrumentationImpl; (2) Update agent super classes in tests with new expectations that premain methods in supers should non be called
- ... and 2 more: https://git.openjdk.java.net/jdk/compare/06cc1b7a...d926e4b1
-------------
Changes:
- all: https://git.openjdk.java.net/jdk/pull/1694/files
- new: https://git.openjdk.java.net/jdk/pull/1694/files/219a2cd6..d926e4b1
Webrevs:
- full: https://webrevs.openjdk.java.net/?repo=jdk&pr=1694&range=11
- incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=1694&range=10-11
Stats: 114388 lines in 3016 files changed: 55977 ins; 36917 del; 21494 mod
Patch: https://git.openjdk.java.net/jdk/pull/1694.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/1694/head:pull/1694
PR: https://git.openjdk.java.net/jdk/pull/1694
More information about the serviceability-dev
mailing list