bug 69811
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 b06983c..595cad2 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
@@ -114,6 +114,8 @@
 		IFeatureReference ref;
 		IInstallFeatureOperation patchFor;
 		boolean patch;
+		IInstallFeatureOperation job;
+		
 		public Hit(IFeature candidate, IFeatureReference ref) {
 			this.candidate = candidate;
 			this.ref = ref;
@@ -129,12 +131,15 @@
 		}
 
 		public IInstallFeatureOperation getJob() {
-			try {
-				IFeature feature = ref.getFeature(null);
-				return OperationsManager.getOperationFactory().createInstallOperation(null, feature, null, null, null);
-			} catch (CoreException e) {
-				return null;
+			if (job == null) {
+				try {
+					IFeature feature = ref.getFeature(null);
+					job = OperationsManager.getOperationFactory().createInstallOperation(null, feature, null, null, null);
+				} catch (CoreException e) {
+					UpdateCore.log(e);
+				}
 			}
+			return job;
 		}
 
 		public boolean isPatch() {
@@ -228,7 +233,9 @@
 					if (isNewerVersion(candidate.getVersionedIdentifier(),ref.getVersionedIdentifier())) {
 						Hit h = new Hit(candidate, ref);
 						hits.add(h);
-						updateJobs.add(h.getJob());
+						IInstallFeatureOperation job = h.getJob();
+						if (job != null)
+							updateJobs.add(job);
 					} else {
 						// accept the same feature if the installed
 						// feature is broken