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);