Need to check for array types in Bundle.loadClass(). This used to not
be necessary, but the way we refactored package filtering requires that
we do this check here too. (FELIX-2950)


git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1172687 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/framework/src/main/java/org/apache/felix/framework/Felix.java b/framework/src/main/java/org/apache/felix/framework/Felix.java
index 543e560..f836663 100644
--- a/framework/src/main/java/org/apache/felix/framework/Felix.java
+++ b/framework/src/main/java/org/apache/felix/framework/Felix.java
@@ -1720,6 +1720,16 @@
                 throw new ClassNotFoundException(name, ex);
             }
         }
+
+        // We do not call getClassLoader().loadClass() for arrays because
+        // it does not correctly handle array types, which is necessary in
+        // cases like deserialization using a wrapper class loader.
+        if ((name != null) && (name.length() > 0) && (name.charAt(0) == '['))
+        {
+            return Class.forName(name, false,
+                ((BundleWiringImpl) bundle.adapt(BundleWiring.class)).getClassLoader());
+        }
+
         return ((BundleWiringImpl)
             bundle.adapt(BundleWiring.class)).getClassLoader().loadClass(name);
     }