Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6292705

IAE thrown when a JMX client proxies a remote java.lang.management.ThreadMXBean

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P3 P3
    • 6
    • 6
    • core-svc
    • None
    • b45
    • generic
    • generic
    • Verified

      The issue has been seen between two jvm, one started with management on and the other trying to create MXBean proxies for the java.lang.management MXBeans.
      The client is Mustang b42; the server is either Tiger Update 5 build 2 or Mustang b42; in both cases, the stack got on client side is the same.

      The call that fails is the newMXBeanProxy one in the following client side code :

                  ObjectName threadName =
                          new ObjectName(ManagementFactory.THREAD_MXBEAN_NAME) ;
                  Utils.trace("getMBeanInfo\t\t"
                          + getClient().getMBeanInfo(threadName));
                  ThreadMXBean thread =
                          JMX.newMXBeanProxy(getClient(),
                              threadName,
                              ThreadMXBean.class) ;

      Test output :

      [SQE] ---- ThreadMXBean
      [SQE] getMBeanInfo javax.management.MBeanInfo[description=sun.management.ThreadImpl, attributes=[javax.management.MBeanAttributeInfo[description=CurrentThreadCpuTimeSupported, name=CurrentThreadCpuTimeSupported, type=boolean, read-only, isIs, descriptor={}], javax.management.MBeanAttributeInfo[description=ThreadCpuTimeEnabled, name=ThreadCpuTimeEnabled, type=boolean, read/write, isIs, descriptor={}], javax.management.MBeanAttributeInfo[description=ThreadCpuTimeSupported, name=ThreadCpuTimeSupported, type=boolean, read-only, isIs, descriptor={}], javax.management.MBeanAttributeInfo[description=CurrentThreadCpuTime, name=CurrentThreadCpuTime, type=long, read-only, descriptor={}], javax.management.MBeanAttributeInfo[description=ObjectMonitorUsageSupported, name=ObjectMonitorUsageSupported, type=boolean, read-only, isIs, descriptor={}], javax.management.MBeanAttributeInfo[description=PeakThreadCount, name=PeakThreadCount, type=int, read-only, descriptor={}], javax.management.MBeanAttributeInfo[description=CurrentThreadUserTime, name=CurrentThreadUserTime, type=long, read-only, descriptor={}], javax.management.MBeanAttributeInfo[description=ThreadContentionMonitoringEnabled, name=ThreadContentionMonitoringEnabled, type=boolean, read/write, isIs, descriptor={}], javax.management.MBeanAttributeInfo[description=DaemonThreadCount, name=DaemonThreadCount, type=int, read-only, descriptor={}], javax.management.MBeanAttributeInfo[description=AllThreadIds, name=AllThreadIds, type=[J, read-only, descriptor={}], javax.management.MBeanAttributeInfo[description=AllLockedMonitors, name=AllLockedMonitors, type=javax.management.openmbean.TabularData, read-only, descriptor={}], javax.management.MBeanAttributeInfo[description=ThreadContentionMonitoringSupported, name=ThreadContentionMonitoringSupported, type=boolean, read-only, isIs, descriptor={}], javax.management.MBeanAttributeInfo[description=TotalStartedThreadCount, name=TotalStartedThreadCount, type=long, read-only, descriptor={}], javax.management.MBeanAttributeInfo[description=ThreadCount, name=ThreadCount, type=int, read-only, descriptor={}], javax.management.MBeanAttributeInfo[description=SynchronizerUsageSupported, name=SynchronizerUsageSupported, type=boolean, read-only, isIs, descriptor={}], javax.management.MBeanAttributeInfo[description=AllLockedSynchronizers, name=AllLockedSynchronizers, type=javax.management.openmbean.TabularData, read-only, descriptor={}]], constructors=[], operations=[javax.management.MBeanOperationInfo[description=resetPeakThreadCount, name=resetPeakThreadCount, returnType=void, signature=[], impact=action/info, descriptor={}], javax.management.MBeanOperationInfo[description=getThreadInfo, name=getThreadInfo, returnType=[Ljavax.management.openmbean.CompositeData;, signature=[javax.management.MBeanParameterInfo[description=p0, name=p0, type=[J, descriptor={}], javax.management.MBeanParameterInfo[description=p1, name=p1, type=int, descriptor={}]], impact=action/info, descriptor={}], javax.management.MBeanOperationInfo[description=getThreadInfo, name=getThreadInfo, returnType=javax.management.openmbean.CompositeData, signature=[javax.management.MBeanParameterInfo[description=p0, name=p0, type=long, descriptor={}], javax.management.MBeanParameterInfo[description=p1, name=p1, type=int, descriptor={}]], impact=action/info, descriptor={}], javax.management.MBeanOperationInfo[description=getThreadInfo, name=getThreadInfo, returnType=[Ljavax.management.openmbean.CompositeData;, signature=[javax.management.MBeanParameterInfo[description=p0, name=p0, type=[J, descriptor={}]], impact=action/info, descriptor={}], javax.management.MBeanOperationInfo[description=getThreadInfo, name=getThreadInfo, returnType=javax.management.openmbean.CompositeData, signature=[javax.management.MBeanParameterInfo[description=p0, name=p0, type=long, descriptor={}]], impact=action/info, descriptor={}], javax.management.MBeanOperationInfo[description=findDeadlockedThreads, name=findDeadlockedThreads, returnType=[J, signature=[], impact=action/info, descriptor={}], javax.management.MBeanOperationInfo[description=findMonitorDeadlockedThreads, name=findMonitorDeadlockedThreads, returnType=[J, signature=[], impact=action/info, descriptor={}], javax.management.MBeanOperationInfo[description=getThreadUserTime, name=getThreadUserTime, returnType=long, signature=[javax.management.MBeanParameterInfo[description=p0, name=p0, type=long, descriptor={}]], impact=action/info, descriptor={}], javax.management.MBeanOperationInfo[description=getThreadCpuTime, name=getThreadCpuTime, returnType=long, signature=[javax.management.MBeanParameterInfo[description=p0, name=p0, type=long, descriptor={}]], impact=action/info, descriptor={}]], notifications=[], descriptor={}]
      java.lang.IllegalArgumentException: Not a class: java.lang.management.MonitorInfo[]
      at com.sun.jmx.mbeanserver.XType.asClass(XType.java:85)
      at com.sun.jmx.mbeanserver.OpenConverter.makeArrayOrCollectionConverter(OpenConverter.java:309)
      at com.sun.jmx.mbeanserver.OpenConverter.makeConverter(OpenConverter.java:256)
      at com.sun.jmx.mbeanserver.OpenConverter.toConverter(OpenConverter.java:239)
      at com.sun.jmx.mbeanserver.OpenConverter.makeTabularConverter(OpenConverter.java:329)
      at com.sun.jmx.mbeanserver.OpenConverter.makeParameterizedConverter(OpenConverter.java:368)
      at com.sun.jmx.mbeanserver.OpenConverter.makeConverter(OpenConverter.java:266)
      at com.sun.jmx.mbeanserver.OpenConverter.toConverter(OpenConverter.java:239)
      at com.sun.jmx.mbeanserver.ConvertingMethod.<init>(ConvertingMethod.java:188)
      at com.sun.jmx.mbeanserver.ConvertingMethod.from(ConvertingMethod.java:25)
      at com.sun.jmx.mbeanserver.MXBeanAnalyzer.<init>(MXBeanAnalyzer.java:105)
      at com.sun.jmx.mbeanserver.MXBeanAnalyzer.analyzer(MXBeanAnalyzer.java:29)
      at javax.management.JMX.newMXBeanProxy(JMX.java:265)
      at javax.management.JMX.newMXBeanProxy(JMX.java:222)
      at javasoft.sqe.jmx.test.functional.MXBeanTest1.doThreadMXBeanTest(MXBeanTest1.java:196)
      at javasoft.sqe.jmx.test.functional.MXBeanTest1.run(MXBeanTest1.java:75)
      at javasoft.sqe.jmx.share.TestStarter.<init>(TestStarter.java:40)
      at javasoft.sqe.jmx.share.TestStarter.main(TestStarter.java:98)
      [SQE] class java.lang.IllegalArgumentException==>Not a class: java.lang.management.MonitorInfo[]
      [SQE] ---- ERROR


      ###@###.### 2005-06-30 07:14:05 GMT

            lmalvent Luis-Miguel Alventosa (Inactive)
            yjoan Yves Joan (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: