This is an automated email from the ASF dual-hosted git repository.
pauls pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/felix-dev.git
The following commit(s) were added to refs/heads/master by this push:
new 36f59b7f27 FELIX-6534: system bundle findEntries should return null
(#153)
36f59b7f27 is described below
commit 36f59b7f270484bac74a0e2a098c35f66d9ddf80
Author: Karl Pauls <[email protected]>
AuthorDate: Thu May 19 23:58:41 2022 +0200
FELIX-6534: system bundle findEntries should return null (#153)
---
.../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
{