SLING-2702 : NPE as repository class loader might not have been instantiated
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1446234 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/sling/jcr/classloader/internal/ClassLoaderWriterImpl.java b/src/main/java/org/apache/sling/jcr/classloader/internal/ClassLoaderWriterImpl.java
index b39346a..4ef22e1 100644
--- a/src/main/java/org/apache/sling/jcr/classloader/internal/ClassLoaderWriterImpl.java
+++ b/src/main/java/org/apache/sling/jcr/classloader/internal/ClassLoaderWriterImpl.java
@@ -112,12 +112,6 @@
private volatile RepositoryClassLoader repositoryClassLoader;
/**
- * The dynamic class loader used as the parent of the repository
- * class loader.
- */
- private volatile ClassLoader dynamicClassLoader;
-
- /**
* Activate this component.
* @param props The configuration properties
*/
@@ -178,9 +172,9 @@
this.repositoryClassLoader = null;
}
- if (this.dynamicClassLoader != null) {
+ if (this.dynamicClassLoaderManager != null) {
this.callerBundle.getBundleContext().ungetService(this.dynamicClassLoaderManager);
- this.dynamicClassLoader = null;
+ this.dynamicClassLoaderManager = null;
}
}
@@ -219,14 +213,13 @@
// get the dynamic class loader for the bundle using this
// class loader writer
- DynamicClassLoaderManager dclm = (DynamicClassLoaderManager) this.callerBundle.getBundleContext().getService(
+ final DynamicClassLoaderManager dclm = (DynamicClassLoaderManager) this.callerBundle.getBundleContext().getService(
this.dynamicClassLoaderManager);
- this.dynamicClassLoader = dclm.getDynamicClassLoader();
this.repositoryClassLoader = new RepositoryClassLoader(
this.classPath,
this,
- this.dynamicClassLoader);
+ dclm.getDynamicClassLoader());
}
return this.repositoryClassLoader;
}