public void unregisterMBean(ObjectName name) throws InstanceNotFoundException, MBeanRegistrationException { name = qualifyName(name); if (name.getDomain().equals(JMI_DOMAIN)) throw new RuntimeOperationsException(new IllegalArgumentException( "Not allowed to unregister: " + name.toString())); MBeanEntry entry = get(name); Object resource = entry.getResourceInstance(); try { // allow subclasses to perform their own pre- and post- pre-deregister logic handlePreDeregister (entry.getInvoker()); } catch (Exception e) { // don't double wrap MBeanRegistrationException if (e instanceof MBeanRegistrationException) throw (MBeanRegistrationException)e; throw new MBeanRegistrationException(e, "preDeregister"); } // Remove any classloader if (resource instanceof ClassLoader) loaderRepository.removeClassLoader((ClassLoader)resource); // It is no longer registered remove(name); sendUnRegistrationNotification (name); entry.getInvoker().postDeregister(); }
public void unregisterMBean(ObjectName name) throws InstanceNotFoundException, MBeanRegistrationException { name = qualifyName(name); if (name.getDomain().equals(JMI_DOMAIN)) throw new RuntimeOperationsException(new IllegalArgumentException( "Not allowed to unregister: " + name.toString())); MBeanEntry entry = get(name); Object resource = entry.getResourceInstance(); try { // allow subclasses to perform their own pre- and post- pre-deregister logic handlePreDeregister (entry.getInvoker()); } catch (Exception e) { // don't double wrap MBeanRegistrationException if (e instanceof MBeanRegistrationException) throw (MBeanRegistrationException)e; throw new MBeanRegistrationException(e, "preDeregister"); } // Remove any classloader if (resource instanceof ClassLoader) loaderRepository.removeClassLoader((ClassLoader)resource); // It is no longer registered remove(name); sendUnRegistrationNotification (name); entry.getInvoker().postDeregister(); }