Tuomas Kiviaho created ARIES-1119:
-------------------------------------
Summary: MBean registration race condition in JMXAgentImpl
Key: ARIES-1119
URL: https://issues.apache.org/jira/browse/ARIES-1119
Project: Aries
Issue Type: Bug
Components: JMX
Affects Versions: jmx-core-1.0.2
Environment: jmx-core-1.1.1
Reporter: Tuomas Kiviaho
Priority: Minor
I'm just starting to use Aries JMX Whiteboard but the first thing to struck me
was an innocent but yet disturbing error message.
{code}
[INFO] [org.visit] Registering org.osgi.jmx.service.cm.ConfigurationAdminMBean
to MBeanServer com.sun.jmx.mbeanserver.JmxMBeanServer@82a72a with name
osgi.compendium:service=cm,version=1.3,framework=org.apache.felix.framework,uuid=c16979bc-e552-4a51-8763-a41d385589c8
[INFO] [org.visit] Registering org.osgi.jmx.framework.FrameworkMBean to
MBeanServer com.sun.jmx.mbeanserver.JmxMBeanServer@82a72a with name
osgi.core:type=framework,version=1.7,framework=org.apache.felix.framework,uuid=c16979bc-e552-4a51-8763-a41d385589c8
[INFO] [org.visit] Registering org.osgi.jmx.service.cm.ConfigurationAdminMBean
to MBeanServer com.sun.jmx.mbeanserver.JmxMBeanServer@82a72a with name
osgi.compendium:service=cm,version=1.3,framework=org.apache.felix.framework,uuid=c16979bc-e552-4a51-8763-a41d385589c8
[WARNING] [org.visit] MBean is already registered
org.apache.felix.log.LogException:
javax.management.InstanceAlreadyExistsException:
osgi.compendium:service=cm,version=1.3,framework=org.apache.felix.framework,uuid=c16979bc-e552-4a51-8763-a41d385589c8
at com.sun.jmx.mbeanserver.Repository.addMBean(Repository.java:437)
at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerWithRepository(DefaultMBeanServerInterceptor.java:1898)
at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerDynamicMBean(DefaultMBeanServerInterceptor.java:966)
at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.java:900)
at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:324)
at
com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:522)
at org.apache.aries.jmx.agent.JMXAgentImpl.registerMBean(.:194)
at org.apache.aries.jmx.agent.JMXAgentContext.registerMBean(.:74)
at org.apache.aries.jmx.AbstractCompendiumHandler$1.run(.:91)
{code}
It seems that JMXAgentImpl is not keeping track on which server it has
registered which mbean instance so it tries to register already registered
beans again. With a small effort, the current mbeans handlers tracking table
could be changed to contain mbean servers instead of a simple flag indicating
whether mbean has been registered or not.
--
This message was sent by Atlassian JIRA
(v6.1#6144)