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

Reply via email to