Bug 856374 - JMX Plugin - Unsupported key type: Legacy
Summary: JMX Plugin - Unsupported key type: Legacy
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: JBoss Operations Network
Classification: JBoss
Component: Plugin -- Other
Version: JON 3.1.1
Hardware: Unspecified
OS: Unspecified
high
medium
Target Milestone: ---
: JON 3.1.2
Assignee: Simeon Pinder
QA Contact: Mike Foley
URL:
Whiteboard:
Depends On: 839087
Blocks:
TreeView+ depends on / blocked
 
Reported: 2012-09-11 22:23 UTC by Simeon Pinder
Modified: 2013-09-11 11:04 UTC (History)
4 users (show)

Fixed In Version:
Clone Of: 839087
Environment:
Last Closed: 2013-09-11 11:04:40 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Simeon Pinder 2012-09-11 22:23:38 UTC
+++ This bug was initially created as a clone of Bug #839087 +++

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

--- Additional comment from spinder on 2012-09-11 18:22:10 EDT ---

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

Comment 1 Simeon Pinder 2012-09-11 22:25:52 UTC
These fixes should be applied to the appropriate release branches.  Discovery of the JMX server instances will fail if the main class name is not found.

Comment 2 Simeon Pinder 2012-11-30 20:59:37 UTC
This is checked into the release/jon3.1.x branch with commits:
fbb56423a291d67900
10b02ff05c15e2cdf3

See BZ(https://bugzilla.redhat.com/show_bug.cgi?id=839087) for original commits and details description.

Moving this to MODIFIED awaiting a new ER build.

Comment 3 Simeon Pinder 2012-12-07 06:31:39 UTC
Moving to ON_QA as available for testing in ER3 or greater: https://brewweb.devel.redhat.com/buildinfo?buildID=246689

Comment 4 Mike Foley 2013-01-14 23:36:59 UTC
discussed with spinder.  this is not easily independtly QA'able.  QE has regression tested ALL the plugins for JON 3.1.2 ... which regression tests this change.  Based on having regression tested ALL plugins ... and having sign-offs from all QE leads in RH Middleware with a JON plugin ... I am marking this verified.


Note You need to log in before you can comment on or make changes to this bug.