Index: trunk/src/org/openstreetmap/josm/plugins/PluginHandler.java
===================================================================
--- trunk/src/org/openstreetmap/josm/plugins/PluginHandler.java	(revision 12924)
+++ trunk/src/org/openstreetmap/josm/plugins/PluginHandler.java	(revision 12925)
@@ -1421,8 +1421,14 @@
         PluginProxy err = null;
         List<StackTraceElement> stack = new ArrayList<>();
+        Set<Throwable> seen = new HashSet<>();
         Throwable current = ex;
         while (current != null) {
+            seen.add(current);
             stack.addAll(Arrays.asList(current.getStackTrace()));
-            current = current.getCause();
+            Throwable cause = current.getCause();
+            if (cause != null && seen.contains(cause)) {
+                break; // circular refernce
+            }
+            current = cause;
         }
 
