On Feb 3, 2004, at 9:48 PM, Greg Wilkins wrote:

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???

Proxies are not valid until doStart. This is due to the fact that the pattern you have assigned for the endpoint may not match any other running GBeans (or their may be more then one matching GBean). When you enter the running state we lock down the single reference.


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(GB eanMBeanReference.java:321)
at mx4j.server.interceptor.NotificationListenerMBeanServerInterceptor$List enerWrapper.handleNotification(NotificationListenerMBeanServerIntercept or.java:57)
at javax.management.NotificationBroadcasterSupport.handleNotification(Noti ficationBroadcasterSupport.java:343)
at javax.management.NotificationBroadcasterSupport.sendNotification(Notifi cationBroadcasterSupport.java:317)
at org.apache.geronimo.gbean.jmx.AbstractManagedObject.sendNotification(Ab stractManagedObject.java:282)
at org.apache.geronimo.gbean.jmx.AbstractManagedObject.attemptFullStart(Ab stractManagedObject.java:535)
at org.apache.geronimo.gbean.jmx.AbstractManagedObject.start(AbstractManag edObject.java:317)
at org.apache.geronimo.gbean.jmx.AbstractManagedObject.startRecursive(Abst ractManagedObject.java:341)
at org.apache.geronimo.gbean.jmx.GBeanMBean$8.invoke(GBeanMBean.java:617)
at org.apache.geronimo.gbean.jmx.GBeanMBeanOperation.invoke(GBeanMBeanOper ation.java:193)
at org.apache.geronimo.gbean.jmx.GBeanMBean.invoke(GBeanMBean.java:488)
at mx4j.server.interceptor.InvokerMBeanServerInterceptor.invoke(InvokerMBe anServerInterceptor.java:224)
at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBe anServerInterceptor.java:121)
at mx4j.server.interceptor.SecurityMBeanServerInterceptor.invoke(SecurityM BeanServerInterceptor.java:86)
at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBe anServerInterceptor.java:121)
at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBe anServerInterceptor.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(StartComma nd.java:88)
at java.lang.Thread.run(Thread.java:536)

I don't see how this is possible. Do you still have the code that makes this happen? If so, please send it to me.


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...

Their is definitely something wacky going on.

-dain



Reply via email to