public Class[] getLoadedClasses() { return delegate.getLoadedClasses(); }
public Class[] getLoadedClasses() { return delegate.getLoadedClasses(); }
public Class[] getLoadedClasses() { return delegate.getLoadedClasses(); }
public Class[] getLoadedClasses() { return delegate.getLoadedClasses(); }
public Class[] getLoadedClasses() { return delegate.getLoadedClasses(); }
private static void cleanUpLoader(ClassLoader loader, Set<ClassLoader> encounteredLoaders, Set<Class<?>> encounteredClasses) throws Exception { if (loader instanceof CpsGroovyShell.TimingLoader) { cleanUpLoader(loader.getParent(), encounteredLoaders, encounteredClasses); return; } if (!(loader instanceof GroovyClassLoader)) { LOGGER.log(Level.FINER, "ignoring {0}", loader); return; } if (!encounteredLoaders.add(loader)) { return; } cleanUpLoader(loader.getParent(), encounteredLoaders, encounteredClasses); LOGGER.log(Level.FINER, "found {0}", String.valueOf(loader)); SerializableClassRegistry.getInstance().release(loader); cleanUpGlobalClassValue(loader); GroovyClassLoader gcl = (GroovyClassLoader) loader; for (Class<?> clazz : gcl.getLoadedClasses()) { if (encounteredClasses.add(clazz)) { LOGGER.log(Level.FINER, "found {0}", clazz.getName()); Introspector.flushFromCaches(clazz); cleanUpGlobalClassSet(clazz); cleanUpObjectStreamClassCaches(clazz); cleanUpLoader(clazz.getClassLoader(), encounteredLoaders, encounteredClasses); } } gcl.clearCache(); }