Index: trunk/src/org/openstreetmap/josm/plugins/PluginDownloadTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/plugins/PluginDownloadTask.java	(revision 6615)
+++ trunk/src/org/openstreetmap/josm/plugins/PluginDownloadTask.java	(revision 6643)
@@ -163,5 +163,5 @@
                 download(d, pluginFile);
             } catch(PluginDownloadException e) {
-                e.printStackTrace();
+                Main.error(e);
                 failed.add(d);
                 continue;
Index: trunk/src/org/openstreetmap/josm/plugins/PluginHandler.java
===================================================================
--- trunk/src/org/openstreetmap/josm/plugins/PluginHandler.java	(revision 6615)
+++ trunk/src/org/openstreetmap/josm/plugins/PluginHandler.java	(revision 6643)
@@ -560,14 +560,5 @@
             msg = null;
         } catch (PluginException e) {
-            Main.error(e.getMessage());
-            Throwable cause = e.getCause();
-            if (cause != null) {
-                msg = cause.getLocalizedMessage();
-                if (msg != null) {
-                    Main.error("Cause: " + cause.getClass().getName()+": " + msg);
-                } else {
-                    cause.printStackTrace();
-                }
-            }
+            Main.error(e);
             if (e.getCause() instanceof ClassNotFoundException) {
                 msg = tr("<html>Could not load plugin {0} because the plugin<br>main class ''{1}'' was not found.<br>"
@@ -575,5 +566,5 @@
             }
         }  catch (Throwable e) {
-            e.printStackTrace();
+            Main.error(e);
         }
         if (msg != null && confirmDisablePlugin(parent, msg, plugin.name)) {
@@ -687,5 +678,5 @@
                 future.get();
             } catch(ExecutionException e) {
-                e.printStackTrace();
+                Main.error(e);
                 return null;
             } catch(InterruptedException e) {
@@ -817,5 +808,5 @@
                 } catch (PluginException e) {
                     Main.warn(tr("Failed to find plugin {0}", name));
-                    e.printStackTrace();
+                    Main.error(e);
                 }
             }
@@ -858,5 +849,5 @@
             } catch (ExecutionException e) {
                 Main.warn(tr("Failed to download plugin information list")+": ExecutionException");
-                e.printStackTrace();
+                Main.error(e);
                 // don't abort in case of error, continue with downloading plugins below
             } catch (InterruptedException e) {
@@ -905,5 +896,5 @@
                     future.get();
                 } catch(ExecutionException e) {
-                    e.printStackTrace();
+                    Main.error(e);
                     alertFailedPluginUpdate(parent, pluginsToUpdate);
                     return plugins;
@@ -1098,5 +1089,5 @@
                 pi.updateFromJar(new PluginInformation(downloadedPluginFile, pi.name));
             } catch(PluginException e) {
-                e.printStackTrace();
+                Main.error(e);
             }
         }
Index: trunk/src/org/openstreetmap/josm/plugins/PluginInformation.java
===================================================================
--- trunk/src/org/openstreetmap/josm/plugins/PluginInformation.java	(revision 6615)
+++ trunk/src/org/openstreetmap/josm/plugins/PluginInformation.java	(revision 6643)
@@ -248,5 +248,5 @@
                     }
                 }
-                catch(Exception e) { e.printStackTrace(); }
+                catch(Exception e) { Main.error(e); }
             }
         }
Index: trunk/src/org/openstreetmap/josm/plugins/PluginListParser.java
===================================================================
--- trunk/src/org/openstreetmap/josm/plugins/PluginListParser.java	(revision 6615)
+++ trunk/src/org/openstreetmap/josm/plugins/PluginListParser.java	(revision 6643)
@@ -1,6 +1,4 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.plugins;
-
-import org.openstreetmap.josm.tools.Utils;
 
 import static org.openstreetmap.josm.tools.I18n.tr;
@@ -13,4 +11,7 @@
 import java.util.LinkedList;
 import java.util.List;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.tools.Utils;
 
 /**
@@ -104,5 +105,5 @@
             }
         } catch (PluginListParseException ex) {
-            ex.printStackTrace();
+            Main.error(ex);
         }
     }
Index: trunk/src/org/openstreetmap/josm/plugins/ReadLocalPluginInformationTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/plugins/ReadLocalPluginInformationTask.java	(revision 6615)
+++ trunk/src/org/openstreetmap/josm/plugins/ReadLocalPluginInformationTask.java	(revision 6643)
@@ -92,5 +92,5 @@
             } catch(PluginListParseException e) {
                 Main.warn(tr("Failed to scan file ''{0}'' for plugin information. Skipping.", fname));
-                e.printStackTrace();
+                Main.error(e);
             }
             monitor.worked(1);
Index: trunk/src/org/openstreetmap/josm/plugins/ReadRemotePluginInformationTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/plugins/ReadRemotePluginInformationTask.java	(revision 6615)
+++ trunk/src/org/openstreetmap/josm/plugins/ReadRemotePluginInformationTask.java	(revision 6643)
@@ -181,5 +181,5 @@
         } catch (MalformedURLException e) {
             if (canceled) return null;
-            e.printStackTrace();
+            Main.error(e);
             return null;
         } catch (IOException e) {
@@ -234,6 +234,6 @@
                     JosmTextArea area = new JosmTextArea(details);
                     area.setEditable(false);
-                    area.setLineWrap(true);  
-                    area.setWrapStyleWord(true); 
+                    area.setLineWrap(true);
+                    area.setWrapStyleWord(true);
                     JScrollPane scrollPane = new JScrollPane(area);
                     scrollPane.setPreferredSize(new Dimension(500, 300));
@@ -273,5 +273,5 @@
         } catch (MalformedURLException e) {
             if (canceled) return;
-            e.printStackTrace();
+            Main.error(e);
             return;
         } catch (IOException e) {
@@ -322,5 +322,5 @@
         } catch(IOException e) {
             // just failed to write the cache file. No big deal, but log the exception anyway
-            e.printStackTrace();
+            Main.error(e);
         } finally {
             if (writer != null) {
@@ -367,5 +367,5 @@
         } catch (PluginListParseException e) {
             Main.error(tr("Failed to parse plugin list document from site ''{0}''. Skipping site. Exception was: {1}", site, e.toString()));
-            e.printStackTrace();
+            Main.error(e);
         }
     }
