132450 Search for updates on features with dependency requires multiple searches
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/UpdateUtils.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/UpdateUtils.java
index c773326..d7ee8b6 100644
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/UpdateUtils.java
+++ b/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/UpdateUtils.java
@@ -393,9 +393,13 @@
// }
public static UpdateSearchRequest createNewUpdatesRequest(IFeature [] features) {
+ return createNewUpdatesRequest(features, true);
+ }
+
+ public static UpdateSearchRequest createNewUpdatesRequest(IFeature [] features, boolean automatic) {
UpdateSearchScope scope = new UpdateSearchScope();
scope.setUpdateMapURL(UpdateUtils.getUpdateMapURL());
- UpdatesSearchCategory category = new UpdatesSearchCategory();
+ UpdatesSearchCategory category = new UpdatesSearchCategory(automatic);
if (features!=null)
category.setFeatures(features);
UpdateSearchRequest searchRequest = new UpdateSearchRequest(category, scope);
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/search/UpdatesSearchCategory.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/search/UpdatesSearchCategory.java
index 22b1395..14d995a 100644
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/search/UpdatesSearchCategory.java
+++ b/update/org.eclipse.update.core/src/org/eclipse/update/internal/search/UpdatesSearchCategory.java
@@ -43,6 +43,7 @@
private static final String CATEGORY_ID =
"org.eclipse.update.core.new-updates"; //$NON-NLS-1$
private IFeature [] features;
+ private boolean automatic;
class Candidate {
ArrayList children;
@@ -316,7 +317,12 @@
private ArrayList candidates;
public UpdatesSearchCategory() {
+ this(true);
+ }
+
+ public UpdatesSearchCategory(boolean automatic) {
super(CATEGORY_ID);
+ this.automatic = automatic;
}
private void collectValidHits(
@@ -335,12 +341,18 @@
UpdateCore.log(job.getFeature().getVersionedIdentifier() + ": " + Messages.DefaultFeatureParser_NoLicenseText, null); //$NON-NLS-1$
continue;
}
- IStatus status;
- if( hit.getPatchedJob()==null){
- status = OperationsManager.getValidator().validatePendingInstall(job.getOldFeature(), job.getFeature());
- }else{
- status = OperationsManager.getValidator().validatePendingChanges(new IInstallFeatureOperation[]{hit.getPatchedJob(), job});
-
+ IStatus status = null;
+
+ // Fix for https://bugs.eclipse.org/bugs/show_bug.cgi?id=132450
+ // Only validate for automatic updates because
+ // non-automatic once will arrive in the review wizard
+ // where additional validation will be performed
+ if (automatic) {
+ if( hit.getPatchedJob()==null){
+ status = OperationsManager.getValidator().validatePendingInstall(job.getOldFeature(), job.getFeature());
+ }else{
+ status = OperationsManager.getValidator().validatePendingChanges(new IInstallFeatureOperation[]{hit.getPatchedJob(), job});
+ }
}
if (status == null || status.getCode() == IStatus.WARNING) {
if (hit.isPatch()) {
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ModeSelectionPage.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ModeSelectionPage.java
index b477f54..e5c27ce 100644
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ModeSelectionPage.java
+++ b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ModeSelectionPage.java
@@ -59,7 +59,7 @@
private void initializeSearch() {
if (searchRequest!=null) return;
- searchRequest = UpdateUtils.createNewUpdatesRequest(null);
+ searchRequest = UpdateUtils.createNewUpdatesRequest(null, false);
}
/* (non-Javadoc)
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/ui/UpdateJob.java b/update/org.eclipse.update.ui/src/org/eclipse/update/ui/UpdateJob.java
index b5205fe..a56579a 100644
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/ui/UpdateJob.java
+++ b/update/org.eclipse.update.ui/src/org/eclipse/update/ui/UpdateJob.java
@@ -115,7 +115,7 @@
this.isAutomatic = isAutomatic;
this.download = download;
updates = new ArrayList();
- searchRequest = UpdateUtils.createNewUpdatesRequest(features);
+ searchRequest = UpdateUtils.createNewUpdatesRequest(features, isAutomatic);
setPriority(Job.DECORATE);
mirrorIndex = 0;
}