@Override protected void removeTopLevelClassLoader(DeploymentContext context) throws Exception { ClassLoader classLoader = context.getClassLoader(); try { unregisterClassLoaderFromMBeanServer(classLoader); } catch (Throwable t) { log.warn("Unable to unregister classloader from mbeanserver: " + classLoader, t); } try { // Remove the classloader system.unregisterClassLoader(classLoader); } finally { // Reset the module to avoid possible memory leaks Module module = context.getTransientAttachments().getAttachment(Module.class); if (module == null) throw new IllegalStateException("Deployment Context has no module: " + context); cleanup(context, module); module.reset(); } }
throw new IllegalStateException("Deployment Context has no module: " + context); ClassLoaderPolicy policy = createTopLevelClassLoaderPolicy(context, module); try registerClassLoaderWithMBeanServer(classLoader);