Search in sources :

Example 1 with DisposableClassLoader

use of org.mule.runtime.module.artifact.api.classloader.DisposableClassLoader in project mule by mulesoft.

the class DefaultMuleApplication method dispose.

@Override
public void dispose() {
    // classloader cleanup
    try {
        ClassLoader appCl = null;
        if (getArtifactClassLoader() != null) {
            appCl = getArtifactClassLoader().getClassLoader();
        }
        // if not initialized yet, it can be null
        if (appCl != null) {
            Thread.currentThread().setContextClassLoader(appCl);
        }
        doDispose();
        if (appCl != null) {
            if (isRegionClassLoaderMember(appCl)) {
                ((DisposableClassLoader) appCl.getParent()).dispose();
            } else if (appCl instanceof DisposableClassLoader) {
                ((DisposableClassLoader) appCl).dispose();
            }
        }
    } finally {
        // kill any refs to the old classloader to avoid leaks
        Thread.currentThread().setContextClassLoader(null);
        deploymentClassLoader = null;
    }
}
Also used : MuleDeployableArtifactClassLoader(org.mule.runtime.module.artifact.api.classloader.MuleDeployableArtifactClassLoader) RegionClassLoader(org.mule.runtime.module.artifact.api.classloader.RegionClassLoader) ArtifactClassLoader(org.mule.runtime.module.artifact.api.classloader.ArtifactClassLoader) DisposableClassLoader(org.mule.runtime.module.artifact.api.classloader.DisposableClassLoader) ClassUtils.withContextClassLoader(org.mule.runtime.core.api.util.ClassUtils.withContextClassLoader) DisposableClassLoader(org.mule.runtime.module.artifact.api.classloader.DisposableClassLoader)

Aggregations

ClassUtils.withContextClassLoader (org.mule.runtime.core.api.util.ClassUtils.withContextClassLoader)1 ArtifactClassLoader (org.mule.runtime.module.artifact.api.classloader.ArtifactClassLoader)1 DisposableClassLoader (org.mule.runtime.module.artifact.api.classloader.DisposableClassLoader)1 MuleDeployableArtifactClassLoader (org.mule.runtime.module.artifact.api.classloader.MuleDeployableArtifactClassLoader)1 RegionClassLoader (org.mule.runtime.module.artifact.api.classloader.RegionClassLoader)1