bug 61683
diff --git a/update/org.eclipse.update.scheduler/src/org/eclipse/update/internal/scheduler/AutomaticUpdatesJob.java b/update/org.eclipse.update.scheduler/src/org/eclipse/update/internal/scheduler/AutomaticUpdatesJob.java
index 911dbd3..04ce574 100644
--- a/update/org.eclipse.update.scheduler/src/org/eclipse/update/internal/scheduler/AutomaticUpdatesJob.java
+++ b/update/org.eclipse.update.scheduler/src/org/eclipse/update/internal/scheduler/AutomaticUpdatesJob.java
@@ -28,12 +28,21 @@
import org.eclipse.update.operations.*;
import org.eclipse.update.search.*;
-public class AutomaticUpdatesJob
- extends Job
- implements IUpdateSearchResultCollector {
+public class AutomaticUpdatesJob extends Job {
+
+ private class AutomaticSearchResultCollector implements IUpdateSearchResultCollector {
+ public void accept(IFeature feature) {
+ IInstallFeatureOperation operation =
+ OperationsManager
+ .getOperationFactory()
+ .createInstallOperation(null, feature, null, null, null);
+ updates.add(operation);
+ }
+ }
// job family
public static final Object family = new Object();
+ private IUpdateSearchResultCollector resultCollector;
private static final IStatus OK_STATUS =
new Status(
@@ -51,13 +60,6 @@
setPriority(Job.DECORATE);
}
- public void accept(IFeature feature) {
- IInstallFeatureOperation operation =
- OperationsManager
- .getOperationFactory()
- .createInstallOperation(null, feature, null, null, null);
- updates.add(operation);
- }
/**
* Returns the standard display to be used. The method first checks, if
@@ -82,7 +84,9 @@
}
searchRequest = UpdateUtils.createNewUpdatesRequest(null);
try {
- searchRequest.performSearch(this, monitor);
+ if (resultCollector == null)
+ resultCollector = new AutomaticSearchResultCollector();
+ searchRequest.performSearch(resultCollector, monitor);
if (UpdateCore.DEBUG) {
UpdateCore.debug("Automatic update search finished - "
+ updates.size()
diff --git a/update/org.eclipse.update.scheduler/src/org/eclipse/update/internal/scheduler/UpdateScheduler.java b/update/org.eclipse.update.scheduler/src/org/eclipse/update/internal/scheduler/UpdateScheduler.java
index 7db20f7..284843a 100644
--- a/update/org.eclipse.update.scheduler/src/org/eclipse/update/internal/scheduler/UpdateScheduler.java
+++ b/update/org.eclipse.update.scheduler/src/org/eclipse/update/internal/scheduler/UpdateScheduler.java
@@ -45,15 +45,16 @@
*/
public UpdateScheduler() {
plugin = this;
- try {
- resourceBundle = ResourceBundle.getBundle("org.eclipse.update.internal.scheduler.UpdateSchedulerResources"); //$NON-NLS-1$
- } catch (MissingResourceException x) {
- resourceBundle = null;
- }
}
public ResourceBundle getResourceBundle() {
+ if (resourceBundle == null)
+ try {
+ resourceBundle = ResourceBundle.getBundle("org.eclipse.update.internal.scheduler.UpdateSchedulerResources"); //$NON-NLS-1$
+ } catch (MissingResourceException x) {
+ resourceBundle = null;
+ }
return resourceBundle;
}