SLING-6500 : Used bundle might not be added to list of used bundles
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1781026 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/sling/commons/classloader/impl/PackageAdminClassLoader.java b/src/main/java/org/apache/sling/commons/classloader/impl/PackageAdminClassLoader.java
index ce7ec46..f7d9b52 100644
--- a/src/main/java/org/apache/sling/commons/classloader/impl/PackageAdminClassLoader.java
+++ b/src/main/java/org/apache/sling/commons/classloader/impl/PackageAdminClassLoader.java
@@ -61,8 +61,8 @@
private Map<String, URL> urlCache = new ConcurrentHashMap<String, URL>();
public PackageAdminClassLoader(final PackageAdmin pckAdmin,
- final ClassLoader parent,
- final DynamicClassLoaderManagerFactory factory) {
+ final ClassLoader parent,
+ final DynamicClassLoaderManagerFactory factory) {
super(parent);
this.packageAdmin = pckAdmin;
this.factory = factory;
@@ -146,7 +146,7 @@
/**
* @see java.lang.ClassLoader#getResources(java.lang.String)
*/
- @SuppressWarnings("unchecked")
+ @Override
public Enumeration<URL> getResources(final String name) throws IOException {
Enumeration<URL> e = super.getResources(name);
if ( e == null || !e.hasMoreElements() ) {
@@ -176,6 +176,7 @@
/**
* @see java.lang.ClassLoader#findResource(java.lang.String)
*/
+ @Override
public URL findResource(final String name) {
final URL cachedURL = urlCache.get(name);
if ( cachedURL != null ) {
@@ -211,6 +212,7 @@
/**
* @see java.lang.ClassLoader#findClass(java.lang.String)
*/
+ @Override
public Class<?> findClass(final String name) throws ClassNotFoundException {
final Class<?> cachedClass = this.classCache.get(name);
if ( cachedClass != null ) {
@@ -236,6 +238,7 @@
/**
* @see java.lang.ClassLoader#loadClass(java.lang.String, boolean)
*/
+ @Override
protected Class<?> loadClass(final String name, final boolean resolve) throws ClassNotFoundException {
final Class<?> cachedClass = this.classCache.get(name);
if ( cachedClass != null ) {
@@ -287,6 +290,7 @@
} else {
try {
clazz = providingBundle.loadClass(name);
+ this.factory.addUsedBundle(providingBundle);
} catch (ClassNotFoundException icnfe) {
throw new ClassNotFoundException(String.format("Cannot find class %s in bundle %s:%s which was marked as the provider for" +
" package %s.", name, providingBundle.getSymbolicName(), providingBundle.getVersion().toString(), packageName), icnfe);