On 9/13/17 2:28 AM, Daniel Fuchs wrote:
Hi Jaroslav,

GraalMBeans.java:

  77         @Override
  78         public Set<String> mbeanInterfaceNames() {
  79             return Collections.singleton(name);
  80         }

Good catch, Daniel.  This should return empty set as mbeanInterfaces() returns.  mbeanInterfaceNames returns the class name of the mbean interfaces.

Mandy

This is not correct. The return set should be a set of
MXBean interface names, as in Class.getName(), not a set
of MXBean ObjectName strings.

The interface in question must be implemented by the
concrete MBean instance and must be a subclass of
PlatformManagedObject.

It is not required for an MBean to implement such
an interface - if it doesn't then it simply won't
be obtainable from ManagementFactory::getPlatformMXBean
or ManagementFactory::getPlatformMXBeans.

So I suspect that in your case, since mbeanInterfaces()
returns an empty set then mbeanInterfaceNames() should
also return an empty set.

IIRC mbeanInterfaceNames() was introduced so that
you could query for a particular MBean implementing
a given interface without necessarily triggering the
loading and initialization of all interfaces implemented
by all MBeans.

best regards,

-- daniel



On 12/09/2017 18:44, Jaroslav Tulach wrote:
Dear reviewers,
after several reconsiderations I have webrev #4 ready for your review. Can you
please take a look at

http://cr.openjdk.java.net/~jtulach/8182701/webrev.04/

and let me know if it is in a reasonable shape? Thanks a lot.
-jt



Reply via email to