Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Watson2016-05-10 21:04:19 +0000
committerThomas Watson2016-06-13 17:41:14 +0000
commite4c242ee27ad748eb7c1545070ba98a1d88f6afb (patch)
treeec364142604ba4d414d6101e891af2732c000ba2
parent020f1ca13bcbbf5d60f1e41d022f37db734db63b (diff)
downloadrt.equinox.framework-e4c242ee27ad748eb7c1545070ba98a1d88f6afb.tar.gz
rt.equinox.framework-e4c242ee27ad748eb7c1545070ba98a1d88f6afb.tar.xz
rt.equinox.framework-e4c242ee27ad748eb7c1545070ba98a1d88f6afb.zip
Bug 493387 - Resolver timeout can be improved by overriding the Logger
used by the resolver Change-Id: I2722ac5512e070a3fbb3e4da0e6c527c7eb1552c Signed-off-by: Thomas Watson <tjwatson@us.ibm.com>
-rw-r--r--bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/container/TestModuleContainer.java2
-rw-r--r--bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleResolver.java20
2 files changed, 19 insertions, 3 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 e4e05e66f..1fb980cd1 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
@@ -1803,7 +1803,7 @@ public class TestModuleContainer extends AbstractTest {
Map<String, String> configuration = new HashMap<String, String>();
configuration.put(EquinoxConfiguration.PROP_RESOLVER_BATCH_TIMEOUT, "5000");
- Map<String, String> debugOpts = Collections.singletonMap("org.eclipse.osgi/resolver/uses", "true");
+ Map<String, String> debugOpts = Collections.emptyMap();
DummyContainerAdaptor adaptor = new DummyContainerAdaptor(new DummyCollisionHook(false), configuration, new DummyResolverHookFactory(), new DummyDebugOptions(debugOpts));
adaptor.setResolverExecutor(executor);
ModuleContainer container = adaptor.getContainer();
diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleResolver.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleResolver.java
index f07ff1475..9a829516b 100644
--- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleResolver.java
+++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleResolver.java
@@ -482,7 +482,7 @@ final class ModuleResolver {
private Map<Resource, ResolutionException> errors = null;
public ResolveLogger() {
- super(0);
+ super(DEBUG_USES ? Logger.LOG_DEBUG : 0);
}
@Override
@@ -508,6 +508,18 @@ final class ModuleResolver {
Map<Resource, ResolutionException> getUsesConstraintViolations() {
return errors == null ? Collections.<Resource, ResolutionException> emptyMap() : errors;
}
+
+ @Override
+ public boolean isDebugEnabled() {
+ checkTimeout();
+ return DEBUG_USES;
+ }
+
+ @Override
+ protected void doLog(int level, String msg, Throwable throwable) {
+ Debug.println("RESOLVER: " + msg + SEPARATOR + (throwable != null ? (TAB + TAB + throwable.getMessage()) : "")); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
}
private final ModuleResolutionReport.Builder reportBuilder = new ModuleResolutionReport.Builder();
@@ -1496,11 +1508,15 @@ final class ModuleResolver {
@Override
public void execute(Runnable command) {
+ checkTimeout();
+ adaptor.getResolverExecutor().execute(command);
+ }
+
+ void checkTimeout() {
if (checkTimeout && resolveTimeout < System.currentTimeMillis()) {
checkTimeout = false;
throw new ResolutionTimeout();
}
- adaptor.getResolverExecutor().execute(command);
}
}

Back to the top