Description of problem: If the process command line does not include the main class name (i.e. it was truncated) then the following may occur with the JMX plugin: 2012-07-10 21:39:22,315 DEBUG [ResourceDiscoveryComponent.invoker.daemon-1] (org.rhq.plugins.jmx.JMXDiscoveryComponent)- JMX service URL for java process [pro cess: pid=[22589], name=[/usr/java/default/bin/java], ppid=[1]] is [service:jmx:rmi:///jndi/rmi://127.0.0.1:8013/jmxrmi]. 2012-07-10 21:39:22,316 DEBUG [ResourceDiscoveryComponent.invoker.daemon-1] (org.rhq.plugins.jmx.JMXDiscoveryComponent)- Using JMX remoting port [8013] as Resource key... 2012-07-10 21:39:22,316 DEBUG [ResourceDiscoveryComponent.invoker.daemon-1] (org.rhq.plugins.jmx.JMXDiscoveryComponent)- Error when trying to discover JVM pro cess [ProcessScanResult: scan=[ProcessScan: query=[process|basename|match=^java.*,arg|-cp|match=.*/.../.*], name=[...]], info=[process: pid=[22589], name=[/usr/java/default/bin/java], ppid=[1]]]. java.lang.IllegalStateException: Unsupported key type: Legacy at org.rhq.plugins.jmx.JMXDiscoveryComponent.buildResourceName(JMXDiscoveryComponent.java:520) at org.rhq.plugins.jmx.JMXDiscoveryComponent.buildResourceDetails(JMXDiscoveryComponent.java:424) at org.rhq.plugins.jmx.JMXDiscoveryComponent.discoverResourceDetails(JMXDiscoveryComponent.java:415) at org.rhq.plugins.jmx.JMXDiscoveryComponent.discoverResources(JMXDiscoveryComponent.java:132) Version-Release number of selected component (if applicable): 5.4 How reproducible: Always Steps to Reproduce: 1. Create a command line that does not include a main class but includes a JMX port 2. Attempt to 'discover' this resource Fix: diff --git a/modules/plugins/jmx/src/main/java/org/rhq/plugins/jmx/JMXDiscoveryComponent.java b/modules/plugins/jmx/src/main/java/org/rhq/plugins/jmx/JMXDisco index f0a4f98..1937092 100644 --- a/modules/plugins/jmx/src/main/java/org/rhq/plugins/jmx/JMXDiscoveryComponent.java +++ b/modules/plugins/jmx/src/main/java/org/rhq/plugins/jmx/JMXDiscoveryComponent.java @@ -512,6 +512,9 @@ public class JMXDiscoveryComponent implements ResourceDiscoveryComponent, Manual } switch (key.getType()) { + case Legacy: + // implies main classname was not found + name.append(key.getJmxRemotingPort()); break; case JmxRemotingPort: name.append(':').append(key.getJmxRemotingPort()); break; case Explicit: ... I haven't tested this yet though
Hi Elias, This diff does solve the issue and I applied the diff with you as the committer. This is fixed in master with commits: ad3c40c0812d747 c431e51a08fbb69 1d4e0d12dc0d013
Moving this to ON_QA.
Bulk closing of items that are on_qa and in old RHQ releases, which are out for a long time and where the issue has not been re-opened since.