public void execute(DetachExtensionCommand command) throws ExecutionException { if (!info.supportsClassLoaderIsolation()) { return; } URI contributionUri = command.getContribution(); URI providerUri = command.getProvider(); // note: casts are safe as all extension and provider classloaders are multi-parent MultiParentClassLoader contributionCl = (MultiParentClassLoader) classLoaderRegistry.getClassLoader(contributionUri); MultiParentClassLoader providerCl = (MultiParentClassLoader) classLoaderRegistry.getClassLoader(providerUri); contributionCl.removeExtensionClassLoader(providerCl); } }