diff options
author | Ian Bull | 2012-05-14 22:08:25 +0000 |
---|---|---|
committer | Ian Bull | 2012-05-14 22:08:25 +0000 |
commit | 8a16090df20423751452e26b96863507dfd20514 (patch) | |
tree | 659dc38b793d87e4a5ff829d4bc653c5bec11c53 /bundles | |
parent | bd4be9c85e4e312c306c8986de4ea89eaff8e611 (diff) | |
download | rt.equinox.p2-8a16090df20423751452e26b96863507dfd20514.tar.gz rt.equinox.p2-8a16090df20423751452e26b96863507dfd20514.tar.xz rt.equinox.p2-8a16090df20423751452e26b96863507dfd20514.zip |
Bug 349628 - No update proposed when there are repository with errorsv20120514-2208I20120514-2100I20120514-1900
Introduces a Suppress Errors flag on the Repository Load job. If this
flag is set, then repository load errors are not shown. We set this flag
when check for updates happen.
Diffstat (limited to 'bundles')
2 files changed, 22 insertions, 0 deletions
diff --git a/bundles/org.eclipse.equinox.p2.ui.sdk/src/org/eclipse/equinox/internal/p2/ui/sdk/UpdateHandler.java b/bundles/org.eclipse.equinox.p2.ui.sdk/src/org/eclipse/equinox/internal/p2/ui/sdk/UpdateHandler.java index f2ce43ad5..aaa3e1f01 100644 --- a/bundles/org.eclipse.equinox.p2.ui.sdk/src/org/eclipse/equinox/internal/p2/ui/sdk/UpdateHandler.java +++ b/bundles/org.eclipse.equinox.p2.ui.sdk/src/org/eclipse/equinox/internal/p2/ui/sdk/UpdateHandler.java @@ -11,6 +11,7 @@ package org.eclipse.equinox.internal.p2.ui.sdk; import org.eclipse.core.runtime.*; +import org.eclipse.core.runtime.jobs.Job; import org.eclipse.equinox.p2.operations.RepositoryTracker; import org.eclipse.equinox.p2.operations.UpdateOperation; import org.eclipse.equinox.p2.ui.LoadMetadataRepositoryJob; @@ -62,6 +63,12 @@ public class UpdateHandler extends PreloadingRepositoryHandler { } @Override + protected void setLoadJobProperties(Job loadJob) { + super.setLoadJobProperties(loadJob); + loadJob.setProperty(LoadMetadataRepositoryJob.SUPPRESS_REPOSITORY_ERRORS, Boolean.toString(true)); + } + + @Override protected String getProgressTaskName() { return ProvSDKMessages.UpdateHandler_ProgressTaskName; } diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/LoadMetadataRepositoryJob.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/LoadMetadataRepositoryJob.java index bae1955af..4d21f9020 100644 --- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/LoadMetadataRepositoryJob.java +++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/LoadMetadataRepositoryJob.java @@ -68,6 +68,15 @@ public class LoadMetadataRepositoryJob extends ProvisioningJob { */ public static final QualifiedName ACCUMULATE_LOAD_ERRORS = new QualifiedName(ProvUIActivator.PLUGIN_ID, "ACCUMULATE_LOAD_ERRORS"); //$NON-NLS-1$ + /** + * The key that should be used to set a property on a repository load job to indicate + * that load errors should be suppressed. This is useful if repositories + * are being loaded in the background as part of a check for update. + * + * @since 2.2 + */ + public static final QualifiedName SUPPRESS_REPOSITORY_ERRORS = new QualifiedName(ProvUIActivator.PLUGIN_ID, "SUPPRESS_REPOSITORY_ERRORS"); //$NON-NLS-1$ + private List<IMetadataRepository> repoCache = new ArrayList<IMetadataRepository>(); private RepositoryTracker tracker; private MultiStatus accumulatedStatus; @@ -125,6 +134,8 @@ public class LoadMetadataRepositoryJob extends ProvisioningJob { } private void handleLoadFailure(ProvisionException e, URI location) { + if (shouldSuppressErrors()) // If we should suppress errors, just skip this + return; if (shouldAccumulateFailures()) { // Some ProvisionExceptions include an empty multi status with a message. // Since empty multi statuses have a severity OK, The platform status handler doesn't handle @@ -146,6 +157,10 @@ public class LoadMetadataRepositoryJob extends ProvisioningJob { } } + private boolean shouldSuppressErrors() { + return getProperty(LoadMetadataRepositoryJob.SUPPRESS_REPOSITORY_ERRORS) != null; + } + private boolean shouldAccumulateFailures() { return getProperty(LoadMetadataRepositoryJob.ACCUMULATE_LOAD_ERRORS) != null; } |