Index: trunk/src/org/openstreetmap/josm/plugins/PluginHandler.java
===================================================================
--- trunk/src/org/openstreetmap/josm/plugins/PluginHandler.java	(revision 8775)
+++ trunk/src/org/openstreetmap/josm/plugins/PluginHandler.java	(revision 8776)
@@ -35,7 +35,4 @@
 import java.util.concurrent.Callable;
 import java.util.concurrent.ExecutionException;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.Future;
 import java.util.concurrent.FutureTask;
 import java.util.jar.JarFile;
@@ -815,13 +812,8 @@
         try {
             ReadLocalPluginInformationTask task = new ReadLocalPluginInformationTask(monitor);
-            ExecutorService service = Executors.newSingleThreadExecutor(Utils.newThreadFactory("plugin-loader-%d", Thread.NORM_PRIORITY));
-            Future<?> future = service.submit(task);
             try {
-                future.get();
-            } catch (ExecutionException e) {
+                task.run();
+            } catch (RuntimeException e) {
                 Main.error(e);
-                return null;
-            } catch (InterruptedException e) {
-                Main.warn("InterruptedException in "+PluginHandler.class.getSimpleName()+" while loading locally available plugin information");
                 return null;
             }
@@ -972,5 +964,4 @@
         try {
             monitor.beginTask("");
-            ExecutorService service = Executors.newSingleThreadExecutor(Utils.newThreadFactory("plugin-updater-%d", Thread.NORM_PRIORITY));
 
             // try to download the plugin lists
@@ -980,9 +971,8 @@
                     Main.pref.getOnlinePluginSites(), displayErrMsg
             );
-            Future<?> future = service.submit(task1);
+            task1.run();
             List<PluginInformation> allPlugins = null;
 
             try {
-                future.get();
                 allPlugins = task1.getAvailablePlugins();
                 plugins = buildListOfPluginsToLoad(parent, monitor.createSubTaskMonitor(1, false));
@@ -1003,10 +993,7 @@
                     }
                 }
-            } catch (ExecutionException e) {
-                Main.warn(tr("Failed to download plugin information list")+": ExecutionException");
+            } catch (RuntimeException e) {
+                Main.warn(tr("Failed to download plugin information list"));
                 Main.error(e);
-                // don't abort in case of error, continue with downloading plugins below
-            } catch (InterruptedException e) {
-                Main.warn(tr("Failed to download plugin information list")+": InterruptedException");
                 // don't abort in case of error, continue with downloading plugins below
             }
@@ -1048,13 +1035,8 @@
                 );
 
-                future = service.submit(pluginDownloadTask);
                 try {
-                    future.get();
-                } catch (ExecutionException e) {
+                    pluginDownloadTask.run();
+                } catch (RuntimeException e) {
                     Main.error(e);
-                    alertFailedPluginUpdate(parent, pluginsToUpdate);
-                    return plugins;
-                } catch (InterruptedException e) {
-                    Main.warn("InterruptedException in "+PluginHandler.class.getSimpleName()+" while updating plugins");
                     alertFailedPluginUpdate(parent, pluginsToUpdate);
                     return plugins;
