dev@glassfish.java.net

Re: Gmbal failing with JVMClassLoadingStatsProvider

From: Ken Cavanaugh <Ken.Cavanaugh_at_Sun.COM>
Date: Mon, 29 Jun 2009 12:55:05 -0700

Lloyd Chambers wrote:
> Gmbal is failing badly with a new MBean of type
> JVMClassLoadingStatsProvider
>
> Do you know who is responsible for this MBean? I need it *off* until
> Gmbal works. It's way to messy to test some other code I'm working on.
There are at least 2 issues here:

    * Gmbal needs to have better error checking on the getObjectName method
          o This problem is fixed in my current gmbal master, but not in
            the current 3.0.0-b004 that everyone is using.
          o Gmbal also needs to include a context describing what is was
            doing when the failure occurred
    * The TypeConverter needs to handle this error as well. It is
      failing in the case of an attribute whose value is supposed to be
      an MBean, hence an ObjectName. But the attributes of
      JVMClassLoadingStatsProbvider are all of type int or long.
          o A possible cause for this is an error in fetching either the
            parent or the children attributes.

I have added testing of the AMX-specific parts of Gmbal in the current
master.
I'm adding more testing of MOMs created via createFederated now.
Hopefully that will shed some light on this failure.
In any case, I'll be releasing 3.0.0-b005 soon.

Thanks,

Ken.

>
> What I don't get is why this is committed without testing, it fails
> instantly when AMX loads.
>
>
> Jun 29, 2009 11:32:39 AM
> INFO: createProxy, java.lang.NullPointerException: "null"
> org.glassfish.gmbal.impl.MBeanTree.getObjectName(MBeanTree.java:404)
> org.glassfish.gmbal.impl.ManagedObjectManagerImpl.getObjectName(ManagedObjectManagerImpl.java:554)
>
> org.glassfish.gmbal.impl.TypeConverterImpl$2.toManagedEntity(TypeConverterImpl.java:367)
>
> org.glassfish.gmbal.impl.AttributeDescriptor.get(AttributeDescriptor.java:152)
>
> org.glassfish.gmbal.impl.MBeanSkeleton.getAttribute(MBeanSkeleton.java:633)
>
> org.glassfish.gmbal.impl.MBeanSkeleton.getAttributes(MBeanSkeleton.java:708)
>
> org.glassfish.gmbal.impl.MBeanImpl.getAttributes(MBeanImpl.java:266)
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttributes(DefaultMBeanServerInterceptor.java:726)
>
> com.sun.jmx.mbeanserver.JmxMBeanServer.getAttributes(JmxMBeanServer.java:665)
>
> org.glassfish.admin.amx.core.proxy.AMXProxyHandler.<init>(AMXProxyHandler.java:127)
>
> org.glassfish.admin.amx.core.proxy.ProxyFactory.getProxy(ProxyFactory.java:614)
>
> org.glassfish.admin.amx.core.proxy.ProxyFactory.getProxy(ProxyFactory.java:541)
>
> org.glassfish.admin.amx.core.proxy.ProxyFactory.toProxySet(ProxyFactory.java:686)
>
> org.glassfish.admin.amx.core.proxy.AMXProxyHandler._invoke(AMXProxyHandler.java:593)
>
> org.glassfish.admin.amx.core.proxy.AMXProxyHandler.invoke(AMXProxyHandler.java:514)
>
> $Proxy90.queryAll(Unknown Source)
> org.glassfish.admin.amx.impl.mbean.SampleImpl.getAllAMXProxies(SampleImpl.java:220)
>
> org.glassfish.admin.amx.impl.mbean.SampleImpl.getAllAMX(SampleImpl.java:214)
>
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>
> java.lang.reflect.Method.invoke(Method.java:597)
> org.glassfish.admin.amx.impl.mbean.AMXImplBase.getAttributeByMethod(AMXImplBase.java:590)
>
> org.glassfish.admin.amx.impl.mbean.AMXImplBase.getAttributeInternal(AMXImplBase.java:507)
>
> org.glassfish.admin.amx.impl.mbean.AMXImplBase.getAttribute(AMXImplBase.java:462)
>
> org.glassfish.admin.amx.impl.mbean.AMXImplBase.getAttributes(AMXImplBase.java:546)
>
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttributes(DefaultMBeanServerInterceptor.java:726)
>
> com.sun.jmx.mbeanserver.JmxMBeanServer.getAttributes(JmxMBeanServer.java:665)
>
> javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1407)
>
> javax.management.remote.rmi.RMIConnectionImpl.access$200(RMIConnectionImpl.java:72)
>
> javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1264)
>
> javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1359)
>
> javax.management.remote.rmi.RMIConnectionImpl.getAttributes(RMIConnectionImpl.java:636)
>
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>
> java.lang.reflect.Method.invoke(Method.java:597)
> sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
> sun.rmi.transport.Transport$1.run(Transport.java:159)
> java.security.AccessController.doPrivileged(Native Method)
> sun.rmi.transport.Transport.serviceCall(Transport.java:155)
> sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
>
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
>
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>
> java.lang.Thread.run(Thread.java:637)
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: java.lang.reflect.InvocationTargetException
> Jun 29, 2009 11:32:39 AM
> SEVERE: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method)
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: at java.lang.reflect.Method.invoke(Method.java:597)
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> org.glassfish.admin.amx.impl.mbean.AMXImplBase.getAttributeByMethod(AMXImplBase.java:590)
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> org.glassfish.admin.amx.impl.mbean.AMXImplBase.getAttributeInternal(AMXImplBase.java:507)
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> org.glassfish.admin.amx.impl.mbean.AMXImplBase.getAttribute(AMXImplBase.java:462)
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> org.glassfish.admin.amx.impl.mbean.AMXImplBase.getAttributes(AMXImplBase.java:546)
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttributes(DefaultMBeanServerInterceptor.java:726)
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> com.sun.jmx.mbeanserver.JmxMBeanServer.getAttributes(JmxMBeanServer.java:665)
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1407)
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> javax.management.remote.rmi.RMIConnectionImpl.access$200(RMIConnectionImpl.java:72)
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1264)
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1359)
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> javax.management.remote.rmi.RMIConnectionImpl.getAttributes(RMIConnectionImpl.java:636)
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method)
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: at java.lang.reflect.Method.invoke(Method.java:597)
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
> Jun 29, 2009 11:32:39 AM
> SEVERE: at sun.rmi.transport.Transport$1.run(Transport.java:159)
> Jun 29, 2009 11:32:39 AM
> SEVERE: at java.security.AccessController.doPrivileged(Native Method)
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> sun.rmi.transport.Transport.serviceCall(Transport.java:155)
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: at java.lang.Thread.run(Thread.java:637)
> Jun 29, 2009 11:32:39 AM
> SEVERE: Caused by: java.lang.RuntimeException:
> java.lang.RuntimeException: Can't get Name and Parent from
> v3:pp=/mon/server-mon[das],type=JVMClassLoadingStatsProvider,name=jvm/class-loading-system
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> org.glassfish.admin.amx.core.proxy.ProxyFactory.getProxy(ProxyFactory.java:626)
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> org.glassfish.admin.amx.core.proxy.ProxyFactory.getProxy(ProxyFactory.java:541)
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> org.glassfish.admin.amx.core.proxy.ProxyFactory.toProxySet(ProxyFactory.java:686)
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> org.glassfish.admin.amx.core.proxy.AMXProxyHandler._invoke(AMXProxyHandler.java:593)
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> org.glassfish.admin.amx.core.proxy.AMXProxyHandler.invoke(AMXProxyHandler.java:514)
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: at $Proxy90.queryAll(Unknown Source)
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> org.glassfish.admin.amx.impl.mbean.SampleImpl.getAllAMXProxies(SampleImpl.java:220)
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> org.glassfish.admin.amx.impl.mbean.SampleImpl.getAllAMX(SampleImpl.java:214)
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: ... 29 more
> Jun 29, 2009 11:32:39 AM
> SEVERE: Caused by: java.lang.RuntimeException: Can't get Name and
> Parent from
> v3:pp=/mon/server-mon[das],type=JVMClassLoadingStatsProvider,name=jvm/class-loading-system
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> org.glassfish.admin.amx.core.proxy.AMXProxyHandler.<init>(AMXProxyHandler.java:138)
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> org.glassfish.admin.amx.core.proxy.ProxyFactory.getProxy(ProxyFactory.java:614)
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: ... 36 more
> Jun 29, 2009 11:32:39 AM
> SEVERE: Caused by: javax.management.RuntimeMBeanException:
> java.lang.NullPointerException
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.rethrow(DefaultMBeanServerInterceptor.java:856)
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttributes(DefaultMBeanServerInterceptor.java:728)
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> com.sun.jmx.mbeanserver.JmxMBeanServer.getAttributes(JmxMBeanServer.java:665)
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> org.glassfish.admin.amx.core.proxy.AMXProxyHandler.<init>(AMXProxyHandler.java:127)
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: ... 37 more
> Jun 29, 2009 11:32:39 AM
> SEVERE: Caused by: java.lang.NullPointerException
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> org.glassfish.gmbal.impl.MBeanTree.getObjectName(MBeanTree.java:404)
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> org.glassfish.gmbal.impl.ManagedObjectManagerImpl.getObjectName(ManagedObjectManagerImpl.java:554)
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> org.glassfish.gmbal.impl.TypeConverterImpl$2.toManagedEntity(TypeConverterImpl.java:367)
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> org.glassfish.gmbal.impl.AttributeDescriptor.get(AttributeDescriptor.java:152)
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> org.glassfish.gmbal.impl.MBeanSkeleton.getAttribute(MBeanSkeleton.java:633)
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> org.glassfish.gmbal.impl.MBeanSkeleton.getAttributes(MBeanSkeleton.java:708)
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> org.glassfish.gmbal.impl.MBeanImpl.getAttributes(MBeanImpl.java:266)
> Jun 29, 2009 11:32:39 AM
> SEVERE: at
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttributes(DefaultMBeanServerInterceptor.java:726)
>
> Jun 29, 2009 11:32:39 AM
> SEVERE: ... 39 more
>