Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Watson2013-07-30 21:16:30 +0000
committerThomas Watson2013-07-30 21:16:30 +0000
commitdec3d5441bf405c9a71b7f48d424e00d62fb5e15 (patch)
treeb08d31a6bf05cf2b175570312a871909c7e7b2db
parent9f976cb15c0b43578e65ed77bede2640d2db9f14 (diff)
downloadrt.equinox.framework-dec3d5441bf405c9a71b7f48d424e00d62fb5e15.tar.gz
rt.equinox.framework-dec3d5441bf405c9a71b7f48d424e00d62fb5e15.tar.xz
rt.equinox.framework-dec3d5441bf405c9a71b7f48d424e00d62fb5e15.zip
Bug 414065 - Shutdown raises many Framework ERRORs
-rw-r--r--bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleDatabase.java12
1 files changed, 9 insertions, 3 deletions
diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleDatabase.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleDatabase.java
index 0a9545b8b..e6083ee0e 100644
--- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleDatabase.java
+++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleDatabase.java
@@ -27,9 +27,9 @@ import org.eclipse.osgi.internal.container.Capabilities;
import org.eclipse.osgi.internal.container.ComputeNodeOrder;
import org.osgi.framework.Constants;
import org.osgi.framework.Version;
+import org.osgi.framework.namespace.PackageNamespace;
import org.osgi.framework.wiring.BundleRevision;
-import org.osgi.resource.Requirement;
-import org.osgi.resource.Wire;
+import org.osgi.resource.*;
import org.osgi.service.resolver.Resolver;
/**
@@ -603,7 +603,13 @@ public class ModuleDatabase {
continue;
}
for (ModuleWire wire : wiring.getRequiredModuleWires(null)) {
- references.add(new Module[] {wire.getRequirer().getRevisions().getModule(), wire.getProvider().getRevisions().getModule()});
+ ModuleRequirement req = wire.getRequirement();
+ // Add all requirements that are not package requirements.
+ // Only add package requirements that are not dynamic
+ // TODO may want to consider only adding package, bundle and host requirements, other generic requirement are not that interesting
+ if (!PackageNamespace.PACKAGE_NAMESPACE.equals(req.getNamespace()) || !PackageNamespace.RESOLUTION_DYNAMIC.equals(req.getDirectives().get(Namespace.REQUIREMENT_RESOLUTION_DIRECTIVE))) {
+ references.add(new Module[] {wire.getRequirer().getRevisions().getModule(), wire.getProvider().getRevisions().getModule()});
+ }
}
}

Back to the top