diff --git a/plugin/src/main/java/io/jenkins/plugins/casc/ConfigurationAsCode.java b/plugin/src/main/java/io/jenkins/plugins/casc/ConfigurationAsCode.java index ccd42c3640..100d8d182d 100644 --- a/plugin/src/main/java/io/jenkins/plugins/casc/ConfigurationAsCode.java +++ b/plugin/src/main/java/io/jenkins/plugins/casc/ConfigurationAsCode.java @@ -169,7 +169,18 @@ public void doReload(StaplerRequest request, StaplerResponse response) throws Ex response.sendError(HttpServletResponse.SC_FORBIDDEN); return; } - configure(); + + try { + configure(); + } catch (ConfiguratorException e) { + LOGGER.log(Level.SEVERE, "Failed to reload configuration", e); + request.setAttribute("error", e.getMessage()); + if (e.getCause() != null) { + request.setAttribute("cause", e.getCause().getMessage()); + } + request.getView(this, "error.jelly").forward(request, response); + return; + } response.sendRedirect(""); } diff --git a/plugin/src/main/resources/io/jenkins/plugins/casc/ConfigurationAsCode/error.jelly b/plugin/src/main/resources/io/jenkins/plugins/casc/ConfigurationAsCode/error.jelly new file mode 100644 index 0000000000..e49c9de658 --- /dev/null +++ b/plugin/src/main/resources/io/jenkins/plugins/casc/ConfigurationAsCode/error.jelly @@ -0,0 +1,13 @@ + + + + + + +

${error}

+ +

${cause}

+
+
+
+