diff options
author | Thomas Watson | 2015-01-16 21:31:18 +0000 |
---|---|---|
committer | Thomas Watson | 2015-01-16 21:31:18 +0000 |
commit | 428afc65abcb90aace02c0f1a303a9e5bc156ec4 (patch) | |
tree | fb5a73029983d5b5b932a0d9beac99547458babd | |
parent | 43830374c00bd7be71d2cbb79fc8f54d22495b93 (diff) | |
download | rt.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
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 |