JDK-8046778 : Better error messages when starting JMX agent via attach or jcmd
  • Type: Bug
  • Component: core-svc
  • Sub-Component: javax.management
  • Affected Version: 9
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2014-06-13
  • Updated: 2018-02-15
  • Resolved: 2014-06-18
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 8 JDK 9
8u162Fixed 9 b20Fixed
Description
When starting the JMX agent via jcmd, the error messages you get are very cryptic: 

$ build/macosx-x86_64-normal-server-release/jdk/bin/jcmd Sleeper ManagementAgent.start 
9979: 
java.lang.RuntimeException: Invalid option specified 

$ build/macosx-x86_64-normal-server-release/jdk/bin/jcmd Sleeper ManagementAgent.start config.file=apa 
10024: 
java.lang.RuntimeException: Config file not found 

$ build/macosx-x86_64-normal-server-release/jdk/bin/jcmd Sleeper ManagementAgent.start jmxremote.port=5000 
9979: 
sun.management.AgentConfigurationError 


This is just because errors are note propagated correctly to the jcmd. With some small changes the above can look like this: 

$ build/macosx-x86_64-normal-server-release/jdk/bin/jcmd Sleeper ManagementAgent.start 
89673: 
java.lang.RuntimeException: Invalid com.sun.management.jmxremote.port number: No port specified 

$ build/macosx-x86_64-normal-server-release/jdk/bin/jcmd Sleeper ManagementAgent.start config.file=apa 
89673: 
java.lang.RuntimeException: Config file not found: apa 

$ build/macosx-x86_64-normal-server-release/jdk/bin/jcmd Sleeper ManagementAgent.start jmxremote.port=5000 
89673: 
java.lang.RuntimeException: Password file not found: /Users/staffan/mercurial/jdk9-hs-rt/build/macosx-x86_64-normal-server-release/jdk/lib/management/jmxremote.password