diff options
author | Susan Franklin | 2008-07-29 18:53:49 +0000 |
---|---|---|
committer | Susan Franklin | 2008-07-29 18:53:49 +0000 |
commit | 40cd6d6c4a58a18c24879bcb38bc811741ab8c94 (patch) | |
tree | 1154c9046ccf14b1dd854bcc92e4b4521ef2f8ed | |
parent | d60de95540425b90f9f3692fae6ff223ff595bb2 (diff) | |
download | rt.equinox.p2-40cd6d6c4a58a18c24879bcb38bc811741ab8c94.tar.gz rt.equinox.p2-40cd6d6c4a58a18c24879bcb38bc811741ab8c94.tar.xz rt.equinox.p2-40cd6d6c4a58a18c24879bcb38bc811741ab8c94.zip |
Bug 233961 - Progress should indicate that we are computing explanationsR34x_v20080729
9 files changed, 26 insertions, 7 deletions
diff --git a/bundles/org.eclipse.equinox.p2.director/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.director/META-INF/MANIFEST.MF index 3f2cec8a9..820278c80 100644 --- a/bundles/org.eclipse.equinox.p2.director/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.equinox.p2.director/META-INF/MANIFEST.MF @@ -4,7 +4,7 @@ Bundle-SymbolicName: org.eclipse.equinox.p2.director;singleton:=true Bundle-Name: %pluginName Bundle-Vendor: %providerName Bundle-Localization: plugin -Bundle-Version: 1.0.0.qualifier +Bundle-Version: 1.0.1.qualifier Import-Package: org.eclipse.equinox.internal.p2.core.helpers, org.eclipse.equinox.internal.provisional.p2.core, org.eclipse.equinox.internal.provisional.p2.core.eventbus, diff --git a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Messages.java b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Messages.java index 657a0bc56..6e73c9734 100644 --- a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Messages.java +++ b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Messages.java @@ -40,6 +40,7 @@ public class Messages extends NLS { public static String Planner_Trivial_exception; public static String Planner_Unsatisfiable_problem; public static String Planner_Unsatisfied_dependency; + public static String Planner_NoSolution; public static String Old_Resolver_Several_Versions; public static String Old_Resolver_Incompatible_Versions; diff --git a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/NewDependencyExpander.java b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/NewDependencyExpander.java index db6ecf6c3..7d403dd80 100644 --- a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/NewDependencyExpander.java +++ b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/NewDependencyExpander.java @@ -267,9 +267,21 @@ public class NewDependencyExpander { toAdd.addAll(alreadyInstalled); do { //reset work at each iteration, then use up a third. This results in an infinite series where remaining ticks gets steadily smaller + if (p.isCanceled()) { + problems.add(Status.CANCEL_STATUS); + return; + } p.setWorkRemaining(100); extractVisibilityData(toAdd); + if (p.isCanceled()) { + problems.add(Status.CANCEL_STATUS); + return; + } extractRequirements(toAdd); + if (p.isCanceled()) { + problems.add(Status.CANCEL_STATUS); + return; + } toAdd = collectMatches(toAdd, problems); p.worked(33); } while (toAdd.size() != 0); @@ -279,6 +291,10 @@ public class NewDependencyExpander { // return; invokeResolver(problems); // if (problems.isOK()) + if (p.isCanceled()) { + problems.add(Status.CANCEL_STATUS); + return; + } extractSolution(); } diff --git a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/SimplePlanner.java b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/SimplePlanner.java index e312d8e55..be2193b09 100644 --- a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/SimplePlanner.java +++ b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/SimplePlanner.java @@ -241,8 +241,8 @@ public class SimplePlanner implements IPlanner { Projector projector = new Projector(slice, newSelectionContext); projector.encode(allIUs, sub.newChild(ExpandWork / 4)); IStatus s = projector.invokeSolver(sub.newChild(ExpandWork / 4)); - if (s.getSeverity() == IStatus.ERROR) { + sub.setTaskName(Messages.Planner_NoSolution); //log the error from the new solver so it is not lost LogHelper.log(s); if (!"true".equalsIgnoreCase(context == null ? null : context.getProperty("org.eclipse.equinox.p2.disable.error.reporting"))) { diff --git a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/messages.properties b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/messages.properties index 3439b1b4c..c22af9218 100644 --- a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/messages.properties +++ b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/messages.properties @@ -13,7 +13,7 @@ Director_Revert_Problems=Problems occurred while reverting the install. Director_Unexpected_IU=The installable unit {0} can not be used here. Director_Task_Installing=Installing into {0} Director_Task_Updating=Updating -Director_Task_Resolving_Dependencies=Resolving dependencies +Director_Task_Resolving_Dependencies=Calculating requirements and dependencies. Director_Unsatisfied_Dependencies=\ Cannot complete the install because some dependencies are not satisfiable @@ -28,5 +28,7 @@ Planner_Trivial_exception=No solution found because of a trivial contradiction i Planner_Unsatisfiable_problem=No solution found because the problem in {0} is unsatisfiable. Planner_Unsatisfied_dependency=Unable to satisfy dependency from {0} to {1}. +Planner_NoSolution=Cannot complete the request. Generating details. + Old_Resolver_Several_Versions=Cannot find a solution satisfying the following requirements {0}. Old_Resolver_Incompatible_Versions=Cannot find a solution where both {0} and {1} can be satisfied.
\ No newline at end of file diff --git a/bundles/org.eclipse.equinox.p2.reconciler.dropins/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.reconciler.dropins/META-INF/MANIFEST.MF index 4bacacc32..a4c886fac 100644 --- a/bundles/org.eclipse.equinox.p2.reconciler.dropins/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.equinox.p2.reconciler.dropins/META-INF/MANIFEST.MF @@ -4,7 +4,7 @@ Bundle-SymbolicName: org.eclipse.equinox.p2.reconciler.dropins;singleton:=true Bundle-Name: %pluginName Bundle-Vendor: %providerName Bundle-Localization: plugin -Bundle-Version: 1.0.0.qualifier +Bundle-Version: 1.0.1.qualifier Bundle-Activator: org.eclipse.equinox.internal.p2.reconciler.dropins.Activator Bundle-RequiredExecutionEnvironment: J2SE-1.4, CDC-1.1/Foundation-1.1 diff --git a/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/Activator.java b/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/Activator.java index b34165656..6c6ce1f4b 100644 --- a/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/Activator.java +++ b/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/Activator.java @@ -400,7 +400,7 @@ public class Activator implements BundleActivator { // create the profile synchronizer on all available repositories ProfileSynchronizer synchronizer = new ProfileSynchronizer(profile, repositories); IStatus result = synchronizer.synchronize(monitor); - if (!result.isOK()) + if (!result.isOK() && !(result.getSeverity() == IStatus.CANCEL)) LogHelper.log(result); } diff --git a/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/ProfileSynchronizer.java b/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/ProfileSynchronizer.java index d0a37a05a..50d6ef987 100644 --- a/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/ProfileSynchronizer.java +++ b/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/ProfileSynchronizer.java @@ -92,7 +92,7 @@ public class ProfileSynchronizer { ProvisioningPlan plan = createProvisioningPlan(request, context, sub.newChild(50)); status = plan.getStatus(); - if (status.getSeverity() == IStatus.ERROR || plan.getOperands().length == 0) + if (status.getSeverity() == IStatus.ERROR || plan.getStatus().getSeverity() == IStatus.CANCEL || plan.getOperands().length == 0) return status; //invoke the engine to perform installs/uninstalls diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/AbstractProvisioningTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/AbstractProvisioningTest.java index a311d3cd7..39359162c 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/AbstractProvisioningTest.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/AbstractProvisioningTest.java @@ -753,7 +753,7 @@ public abstract class AbstractProvisioningTest extends TestCase { } ProvisioningPlan plan = planner.getProvisioningPlan(req, null, null); - if (plan.getStatus().getSeverity() == IStatus.ERROR) + if (plan.getStatus().getSeverity() == IStatus.ERROR || plan.getStatus().getSeverity() == IStatus.CANCEL) return plan.getStatus(); return engine.perform(profile, new DefaultPhaseSet(), plan.getOperands(), null, null); } |