This is an automated email from the ASF dual-hosted git repository. pauls pushed a commit to branch issues/FELIX-6534 in repository https://gitbox.apache.org/repos/asf/felix-dev.git
commit 3341935d0ce4cb58489b70090682c5d9c9dc0164 Author: Karl Pauls <[email protected]> AuthorDate: Thu May 19 22:56:32 2022 +0200 FELIX-6534: system bundle findEntries should return null --- .../java/org/apache/felix/framework/Felix.java | 2 +- .../felix/framework/ExtensionManagerTest.java | 33 ++++++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) 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 ade90ee8fa..eec15c9d58 100644 --- a/framework/src/main/java/org/apache/felix/framework/Felix.java +++ b/framework/src/main/java/org/apache/felix/framework/Felix.java @@ -2016,7 +2016,7 @@ public class Felix extends BundleImpl implements Framework // Get the entry enumeration from the revision content and // create a wrapper enumeration to filter it. Enumeration enumeration = - new EntryFilterEnumeration(revision, true, path, filePattern, recurse, true); + new EntryFilterEnumeration(revision, !(revision instanceof ExtensionManager.ExtensionManagerRevision), path, filePattern, recurse, true); // Return the enumeration if it has elements. return (!enumeration.hasMoreElements()) ? null : enumeration; diff --git a/framework/src/test/java/org/apache/felix/framework/ExtensionManagerTest.java b/framework/src/test/java/org/apache/felix/framework/ExtensionManagerTest.java index 7cb13e10d9..b6aee8c3a1 100644 --- a/framework/src/test/java/org/apache/felix/framework/ExtensionManagerTest.java +++ b/framework/src/test/java/org/apache/felix/framework/ExtensionManagerTest.java @@ -159,6 +159,39 @@ public class ExtensionManagerTest { assertEquals("startstop", activatorCalls.toString()); } + @Test + public void testExtensionBundleEntries() throws Exception { + File cacheDir = new File(testDir, "cache"); + cacheDir.mkdirs(); + String cache = cacheDir.getAbsolutePath(); + + Map<String, Object> params = new HashMap<String, Object>(); + params.put("felix.cache.profiledir", cache); + params.put("felix.cache.dir", cache); + params.put(Constants.FRAMEWORK_STORAGE, cache); + + Framework framework = new Felix(params); + framework.init(); + framework.start(); + + try { + File ebf = createExtensionBundle(); + + assertEquals("Precondition", null, framework.getBundleContext().getBundle(0).getEntry("/META-INF/MANIFEST.MF")); + assertEquals("Precondition", null, framework.getBundleContext().getBundle(0).findEntries("/", "MANIFEST.MF", true)); + + framework.getBundleContext().installBundle( + ebf.toURI().toURL().toExternalForm()); + assertEquals( null, framework.getBundleContext().getBundle(0).getEntry("/META-INF/MANIFEST.MF")); + assertEquals(null, framework.getBundleContext().getBundle(0).findEntries("/", "MANIFEST.MF", true)); + + } finally { + framework.stop(); + } + + framework.waitForStop(10000); + } + @Test public void testSystemBundleHeaders() throws Exception {
