Check for default package. (FELIX-1867)
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@885949 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/framework/src/main/java/org/apache/felix/framework/ModuleImpl.java b/framework/src/main/java/org/apache/felix/framework/ModuleImpl.java
index bc2757a..e602603 100644
--- a/framework/src/main/java/org/apache/felix/framework/ModuleImpl.java
+++ b/framework/src/main/java/org/apache/felix/framework/ModuleImpl.java
@@ -1667,7 +1667,9 @@
if (m_logger.getLogLevel() >= Logger.LOG_DEBUG)
{
msg = diagnoseClassLoadError(m_resolver, ModuleImpl.this, name);
- ex = new ClassNotFoundException(msg, cnfe);
+ ex = (msg != null)
+ ? new ClassNotFoundException(msg, cnfe)
+ : ex;
}
throw ex;
}
@@ -1996,6 +1998,10 @@
// Get package name.
String pkgName = Util.getClassPackage(name);
+ if (pkgName.length() == 0)
+ {
+ return null;
+ }
// First, get the bundle ID of the module doing the class loader.
long impId = module.getBundle().getBundleId();
diff --git a/framework/src/main/java/org/apache/felix/framework/searchpolicy/Resolver.java b/framework/src/main/java/org/apache/felix/framework/searchpolicy/Resolver.java
index 2a0b9e0..606c342 100644
--- a/framework/src/main/java/org/apache/felix/framework/searchpolicy/Resolver.java
+++ b/framework/src/main/java/org/apache/felix/framework/searchpolicy/Resolver.java
@@ -206,6 +206,12 @@
public static IRequirement findAllowedDynamicImport(IModule importer, String pkgName)
{
+ // We cannot import the default package, so return null in that case.
+ if (pkgName.length() == 0)
+ {
+ return null;
+ }
+
// If any of the module exports this package, then we cannot
// attempt to dynamically import it.
ICapability[] caps = importer.getCapabilities();