From 64f37d32c0b724578d67ff4084fb786518b96065 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Mon, 4 Dec 2006 21:53:42 +0000 Subject: * gnu/javax/management/Server.java (beans): Initialize. (registerMBean): Don't initialize beans. --- ChangeLog | 5 ++++ gnu/javax/management/Server.java | 57 +++++++--------------------------------- 2 files changed, 14 insertions(+), 48 deletions(-) diff --git a/ChangeLog b/ChangeLog index 252e7689c..995d5977b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2006-12-03 Mark Wielaard + + * gnu/javax/management/Server.java (beans): Initialize. + (registerMBean): Don't initialize beans. + 2006-12-03 Mark Wielaard * java/util/logging/LogManager.java (getLevelProperty): Check diff --git a/gnu/javax/management/Server.java b/gnu/javax/management/Server.java index 5501b4af7..5eecb6c2d 100644 --- a/gnu/javax/management/Server.java +++ b/gnu/javax/management/Server.java @@ -103,11 +103,6 @@ public class Server implements MBeanServer { - /** - * The name of the delegate bean. - */ - private static final ObjectName DELEGATE_NAME; - /** * The registered beans, represented as a map of * {@link javax.management.ObjectName}s to @@ -125,6 +120,11 @@ public class Server */ private MBeanServer outer; + /** + * The delegate bean. + */ + private MBeanServerDelegate delegate; + /** * The class loader repository. */ @@ -136,24 +136,6 @@ public class Server */ private Map listeners; - /** - * Initialise the delegate name. - */ - static - { - try - { - DELEGATE_NAME = - new ObjectName("JMImplementation:type=MBeanServerDelegate"); - } - catch (MalformedObjectNameException e) - { - throw (Error) - (new InternalError("Failed to construct " + - "the delegate's object name.").initCause(e)); - } - } - /** * Constructs a new management server using the specified * default domain, delegate bean and outer server. @@ -171,28 +153,7 @@ public class Server { this.defaultDomain = defaultDomain; this.outer = outer; - try - { - registerMBean(delegate, DELEGATE_NAME); - } - catch (InstanceAlreadyExistsException e) - { - throw (Error) - (new InternalError("The delegate bean is " + - "already registered.").initCause(e)); - } - catch (MBeanRegistrationException e) - { - throw (Error) - (new InternalError("The delegate bean's preRegister " + - "methods threw an exception.").initCause(e)); - } - catch (NotCompliantMBeanException e) - { - throw (Error) - (new InternalError("The delegate bean is " + - "not compliant.").initCause(e)); - } + this.delegate = delegate; } /** @@ -2058,14 +2019,14 @@ public class Server new IllegalArgumentException("The name was null."); throw new RuntimeOperationsException(e); } - if (name.equals(DELEGATE_NAME)) + Object bean = getBean(name); + checkSecurity(name, null, "unregisterMBean"); + if (bean == delegate) { RuntimeException e = new IllegalArgumentException("The delegate can not be unregistered."); throw new RuntimeOperationsException(e); } - Object bean = getBean(name); - checkSecurity(name, null, "unregisterMBean"); MBeanRegistration register = null; if (bean instanceof MBeanRegistration) { -- cgit v1.2.1