VirtualMachine.loadAgentPath/loadAgentLibrary can fail with AgentLoadException in 2 cases: - attach listener returns error; in the case the exception is thrown from HotSpotVirtualMachine.processCompletionStatus (called from HotSpotVirtualMachine.execute); - attach listener returns success, but reply does not contain Agent_onAttach return code ("return code: %d" message).
before jdk21 if attach listener fails to load required library, it returned error (case 1) from jdk21 attach listener always returns success (case 2) Both cases are ok, but for 2nd case HotSpotVirtualMachine.loadAgentLibrary read only single line of the response message, so exception message didn't contain error details. The fix updates HotSpotVirtualMachine.loadAgentLibrary to read the whole response message. Walking through the code, fixed some other minor things in attach listener and attach API implementation (commented in the code) Testing: - test/jdk/com/sun/tools; - tier1,tier2,tier5-svc ------------- Commit messages: - fix Changes: https://git.openjdk.org/jdk/pull/17954/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=17954&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8325530 Stats: 146 lines in 6 files changed: 106 ins; 16 del; 24 mod Patch: https://git.openjdk.org/jdk/pull/17954.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/17954/head:pull/17954 PR: https://git.openjdk.org/jdk/pull/17954