Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Watson2015-01-16 21:31:18 +0000
committerThomas Watson2015-01-16 21:31:18 +0000
commit428afc65abcb90aace02c0f1a303a9e5bc156ec4 (patch)
treefb5a73029983d5b5b932a0d9beac99547458babd
parent43830374c00bd7be71d2cbb79fc8f54d22495b93 (diff)
downloadrt.equinox.framework-428afc65abcb90aace02c0f1a303a9e5bc156ec4.tar.gz
rt.equinox.framework-428afc65abcb90aace02c0f1a303a9e5bc156ec4.tar.xz
rt.equinox.framework-428afc65abcb90aace02c0f1a303a9e5bc156ec4.zip
Bug 457118 - OutOfMemoryError (Java Heap Space) when resolving bundles
- Added a test that has multiple require paths to a resource
-rw-r--r--bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/container/TestModuleContainer.java23
-rw-r--r--bundles/org.eclipse.osgi.tests/test_files/containerTests/bug457118.a.MF6
-rw-r--r--bundles/org.eclipse.osgi.tests/test_files/containerTests/bug457118.b.MF6
-rw-r--r--bundles/org.eclipse.osgi.tests/test_files/containerTests/bug457118.c.MF6
-rw-r--r--bundles/org.eclipse.osgi.tests/test_files/containerTests/bug457118.d.MF5
-rw-r--r--bundles/org.eclipse.osgi.tests/test_files/containerTests/bug457118.e.MF6
6 files changed, 52 insertions, 0 deletions
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/container/TestModuleContainer.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/container/TestModuleContainer.java
index 69df07323..7f10f05e5 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/container/TestModuleContainer.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/container/TestModuleContainer.java
@@ -1794,6 +1794,29 @@ public class TestModuleContainer extends AbstractTest {
Assert.assertEquals("Wrong package name.", "biz", packageCaps.get(4).getAttributes().get(PackageNamespace.PACKAGE_NAMESPACE));
}
+ @Test
+ public void testBug457118() throws BundleException, IOException {
+ DummyContainerAdaptor adaptor = createDummyAdaptor();
+ ModuleContainer container = adaptor.getContainer();
+
+ Module systemBundle = installDummyModule("system.bundle.MF", Constants.SYSTEM_BUNDLE_LOCATION, container);
+
+ container.resolve(Arrays.asList(systemBundle), true);
+ Module e = installDummyModule("bug457118.e.MF", "e", container);
+ Module a = installDummyModule("bug457118.a.MF", "a", container);
+ Module b = installDummyModule("bug457118.b.MF", "b", container);
+ Module c = installDummyModule("bug457118.c.MF", "c", container);
+ Module d = installDummyModule("bug457118.d.MF", "d", container);
+
+ container.resolve(null, true);
+
+ Assert.assertEquals("e should resolve.", State.RESOLVED, e.getState());
+ Assert.assertEquals("a should resolve.", State.RESOLVED, a.getState());
+ Assert.assertEquals("b should resolve.", State.RESOLVED, b.getState());
+ Assert.assertEquals("c should resolve.", State.RESOLVED, c.getState());
+ Assert.assertEquals("d should resolve.", State.RESOLVED, d.getState());
+ }
+
private static void assertWires(List<ModuleWire> required, List<ModuleWire>... provided) {
for (ModuleWire requiredWire : required) {
for (List<ModuleWire> providedList : provided) {
diff --git a/bundles/org.eclipse.osgi.tests/test_files/containerTests/bug457118.a.MF b/bundles/org.eclipse.osgi.tests/test_files/containerTests/bug457118.a.MF
new file mode 100644
index 000000000..0f7a10b51
--- /dev/null
+++ b/bundles/org.eclipse.osgi.tests/test_files/containerTests/bug457118.a.MF
@@ -0,0 +1,6 @@
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: a
+Bundle-Version: 1.0.0
+Export-Package:
+ a; version=1.0; uses:="b,c"
+Require-Bundle: b, c
diff --git a/bundles/org.eclipse.osgi.tests/test_files/containerTests/bug457118.b.MF b/bundles/org.eclipse.osgi.tests/test_files/containerTests/bug457118.b.MF
new file mode 100644
index 000000000..8b891183b
--- /dev/null
+++ b/bundles/org.eclipse.osgi.tests/test_files/containerTests/bug457118.b.MF
@@ -0,0 +1,6 @@
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: b
+Bundle-Version: 1.0.0
+Export-Package:
+ b; version=1.0; uses:="d"
+Require-Bundle: d; visibility:=reexport
diff --git a/bundles/org.eclipse.osgi.tests/test_files/containerTests/bug457118.c.MF b/bundles/org.eclipse.osgi.tests/test_files/containerTests/bug457118.c.MF
new file mode 100644
index 000000000..7d548524c
--- /dev/null
+++ b/bundles/org.eclipse.osgi.tests/test_files/containerTests/bug457118.c.MF
@@ -0,0 +1,6 @@
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: c
+Bundle-Version: 1.0.0
+Export-Package:
+ c; version=1.0; uses:="d"
+Require-Bundle: d; visibility:=reexport
diff --git a/bundles/org.eclipse.osgi.tests/test_files/containerTests/bug457118.d.MF b/bundles/org.eclipse.osgi.tests/test_files/containerTests/bug457118.d.MF
new file mode 100644
index 000000000..e382078cf
--- /dev/null
+++ b/bundles/org.eclipse.osgi.tests/test_files/containerTests/bug457118.d.MF
@@ -0,0 +1,5 @@
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: d
+Bundle-Version: 1.0.0
+Export-Package:
+ d; version=1.0
diff --git a/bundles/org.eclipse.osgi.tests/test_files/containerTests/bug457118.e.MF b/bundles/org.eclipse.osgi.tests/test_files/containerTests/bug457118.e.MF
new file mode 100644
index 000000000..d313fe9f5
--- /dev/null
+++ b/bundles/org.eclipse.osgi.tests/test_files/containerTests/bug457118.e.MF
@@ -0,0 +1,6 @@
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: e
+Bundle-Version: 1.0.0
+Export-Package:
+ e; version=1.0; uses:="a"
+Require-Bundle: a

Back to the top