*** empty log message ***
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateUIPlugin.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateUIPlugin.java index 9c79101..a74e639 100644 --- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateUIPlugin.java +++ b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateUIPlugin.java
@@ -232,12 +232,15 @@ } public static IFeature[] getInstalledFeatures(IFeature feature, boolean onlyConfigured) { + return getInstalledFeatures(feature.getVersionedIdentifier(), onlyConfigured); + } + + public static IFeature[] getInstalledFeatures(VersionedIdentifier vid, boolean onlyConfigured) { Vector features = new Vector(); try { ILocalSite localSite = SiteManager.getLocalSite(); IInstallConfiguration config = localSite.getCurrentConfiguration(); IConfiguredSite[] isites = config.getConfiguredSites(); - VersionedIdentifier vid = feature.getVersionedIdentifier(); String id = vid.getIdentifier(); for (int i = 0; i < isites.length; i++) {
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/search/UpdatesSearchCategory.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/search/UpdatesSearchCategory.java index 26bc805..cf7084a 100644 --- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/search/UpdatesSearchCategory.java +++ b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/search/UpdatesSearchCategory.java
@@ -15,6 +15,7 @@ import org.eclipse.update.internal.ui.model.*; import org.eclipse.update.internal.ui.parts.*; import org.eclipse.update.internal.ui.preferences.MainPreferencePage; +import org.eclipse.update.internal.ui.wizards.FeatureHierarchyElement; import org.eclipse.update.ui.forms.internal.FormWidgetFactory; public class UpdatesSearchCategory extends SearchCategory { @@ -234,7 +235,7 @@ // otherwise it is a broken feature that we // do not care about. if (ref.isOptional()) { - return true; + return FeatureHierarchyElement.hasOlderVersion(ref); } } }
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/FeatureHierarchyElement.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/FeatureHierarchyElement.java index 50b255e..15588bd 100644 --- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/FeatureHierarchyElement.java +++ b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/FeatureHierarchyElement.java
@@ -328,15 +328,14 @@ return null; } - private static boolean hasOlderVersion(IFeatureReference newRef) { + public static boolean hasOlderVersion(IFeatureReference newRef) { try { - IFeature feature = newRef.getFeature(); - VersionedIdentifier vid = feature.getVersionedIdentifier(); + VersionedIdentifier vid = newRef.getVersionedIdentifier(); PluginVersionIdentifier version = vid.getVersion(); String mode = MainPreferencePage.getUpdateVersionsMode(); IFeature[] allInstalled = - UpdateUIPlugin.getInstalledFeatures(feature, false); + UpdateUIPlugin.getInstalledFeatures(vid, false); for (int i = 0; i < allInstalled.length; i++) { IFeature candidate = allInstalled[i]; PluginVersionIdentifier cversion =