I've been chasing some "strange" behaviour with the GBeans configuration.
I'm not sure if these are bugs or just poor exception reporting. But I'll
dump here just in case...
The ConfigurationParent object passed into the constuctor of the
JettyWebApplicationContext is not in a valid state to do anything with.
If you try calling any methods on it, including toString, it gives you a
java.lang.IllegalStateException: Proxy is stopped
I'm not sure what state this is meant to be in???
More annoyingly, if you do not catch this exception then the kernel start
mechanism does not handle it well - it continues on an NPEs later:
java.lang.NullPointerException
at
org.apache.geronimo.gbean.jmx.GBeanMBeanReference.handleNotification(GBeanMBeanReference.java:321)
at
mx4j.server.interceptor.NotificationListenerMBeanServerInterceptor$ListenerWrapper.handleNotification(NotificationListenerMBeanServerInterceptor.java:57)
at
javax.management.NotificationBroadcasterSupport.handleNotification(NotificationBroadcasterSupport.java:343)
at
javax.management.NotificationBroadcasterSupport.sendNotification(NotificationBroadcasterSupport.java:317)
at
org.apache.geronimo.gbean.jmx.AbstractManagedObject.sendNotification(AbstractManagedObject.java:282)
at
org.apache.geronimo.gbean.jmx.AbstractManagedObject.attemptFullStart(AbstractManagedObject.java:535)
at
org.apache.geronimo.gbean.jmx.AbstractManagedObject.start(AbstractManagedObject.java:317)
at
org.apache.geronimo.gbean.jmx.AbstractManagedObject.startRecursive(AbstractManagedObject.java:341)
at
org.apache.geronimo.gbean.jmx.GBeanMBean$8.invoke(GBeanMBean.java:617)
at
org.apache.geronimo.gbean.jmx.GBeanMBeanOperation.invoke(GBeanMBeanOperation.java:193)
at org.apache.geronimo.gbean.jmx.GBeanMBean.invoke(GBeanMBean.java:488)
at
mx4j.server.interceptor.InvokerMBeanServerInterceptor.invoke(InvokerMBeanServerInterceptor.java:224)
at
mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:121)
at
mx4j.server.interceptor.SecurityMBeanServerInterceptor.invoke(SecurityMBeanServerInterceptor.java:86)
at
mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:121)
at
mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:121)
at
mx4j.server.interceptor.ContextClassLoaderMBeanServerInterceptor.invoke(ContextClassLoaderMBeanServerInterceptor.java:205)
at mx4j.server.MX4JMBeanServer.invoke(MX4JMBeanServer.java:1077)
at
org.apache.geronimo.deployment.plugin.local.StartCommand.run(StartCommand.java:88)
at java.lang.Thread.run(Thread.java:536)
So I think something in AbstractManagedObject.java needs a better catch
block.
I'm not familiar enough with this code yet to guess where this should be..
cheers