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
     {

Reply via email to