From b67a0cb89d0a1f341b6a0d5f99f767d7415d0275 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Pfeuffer?= Date: Tue, 24 Nov 2020 18:18:16 +0100 Subject: [PATCH] Improve logging for failures during plugin installation --- .../sonia/scm/plugin/DefaultPluginManager.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/scm-webapp/src/main/java/sonia/scm/plugin/DefaultPluginManager.java b/scm-webapp/src/main/java/sonia/scm/plugin/DefaultPluginManager.java index b53d715ef6..816bd5639e 100644 --- a/scm-webapp/src/main/java/sonia/scm/plugin/DefaultPluginManager.java +++ b/scm-webapp/src/main/java/sonia/scm/plugin/DefaultPluginManager.java @@ -192,10 +192,16 @@ public class DefaultPluginManager implements PluginManager { dependencyTracker.addInstalled(plugin.getDescriptor()); pendingInstallations.add(pending); eventBus.post(new PluginEvent(PluginEvent.PluginEventType.INSTALLED, plugin)); - } catch (PluginInstallException ex) { - cancelPending(pendingInstallations); - eventBus.post(new PluginEvent(PluginEvent.PluginEventType.INSTALLATION_FAILED, plugin)); - throw ex; + } catch (PluginInstallException installException) { + try { + cancelPending(pendingInstallations); + } catch (PluginFailedToCancelInstallationException cancelInstallationException) { + LOG.error("could not install plugin {}; uninstallation failed (see next exception)", plugin.getDescriptor().getInformation().getName(), installException); + throw cancelInstallationException; + } finally { + eventBus.post(new PluginEvent(PluginEvent.PluginEventType.INSTALLATION_FAILED, plugin)); + } + throw installException; } }