diff --git a/core/src/main/java/hudson/init/impl/GroovyInitScript.java b/core/src/main/java/hudson/init/impl/GroovyInitScript.java index 7523b6229d9b8cc18fd8479453fc9fa5294ff57f..621d52ce635f59c8d09bc4f198a3a24e4b90b88f 100644 --- a/core/src/main/java/hudson/init/impl/GroovyInitScript.java +++ b/core/src/main/java/hudson/init/impl/GroovyInitScript.java @@ -38,7 +38,7 @@ import static hudson.init.InitMilestone.*; */ public class GroovyInitScript { @Initializer(after=JOB_LOADED) - public static void init(Jenkins j) throws IOException { + public static void init(Jenkins j) { new GroovyHookScript("init").run(); } } diff --git a/core/src/main/java/jenkins/util/groovy/GroovyHookScript.java b/core/src/main/java/jenkins/util/groovy/GroovyHookScript.java index b55a915abefa89ddae6c9e3835ee2c35c17f3183..f022f442f1d71bb329188703ed7bc433d1417c05 100644 --- a/core/src/main/java/jenkins/util/groovy/GroovyHookScript.java +++ b/core/src/main/java/jenkins/util/groovy/GroovyHookScript.java @@ -11,9 +11,10 @@ import java.net.URL; import java.util.Arrays; import java.util.Set; import java.util.TreeSet; -import java.util.logging.Level; import java.util.logging.Logger; +import static java.util.logging.Level.WARNING; + /** * A collection of Groovy scripts that are executed as various hooks. * @@ -42,20 +43,28 @@ public class GroovyHookScript { this.hook = hook; } - public void run() throws IOException { + public void run() { Jenkins j = Jenkins.getInstance(); final String hookGroovy = hook+".groovy"; final String hookGroovyD = hook+".groovy.d"; - URL bundled = j.servletContext.getResource("/WEB-INF/"+ hookGroovy); - execute(bundled); + try { + URL bundled = j.servletContext.getResource("/WEB-INF/"+ hookGroovy); + execute(bundled); + } catch (IOException e) { + LOGGER.log(WARNING, "Failed to execute /WEB-INF/"+hookGroovy,e); + } Set resources = j.servletContext.getResourcePaths("/WEB-INF/"+ hookGroovyD +"/"); if (resources!=null) { // sort to execute them in a deterministic order for (String res : new TreeSet(resources)) { - bundled = j.servletContext.getResource(res); - execute(bundled); + try { + URL bundled = j.servletContext.getResource(res); + execute(bundled); + } catch (IOException e) { + LOGGER.log(WARNING, "Failed to execute " + res, e); + } } } @@ -72,8 +81,9 @@ public class GroovyHookScript { if (scripts!=null) { // sort to run them in a deterministic order Arrays.sort(scripts); - for (File f : scripts) + for (File f : scripts) { execute(f); + } } } } @@ -85,10 +95,14 @@ public class GroovyHookScript { } } - protected void execute(File f) throws IOException { + protected void execute(File f) { if (f.exists()) { LOGGER.info("Executing "+f); - execute(new GroovyCodeSource(f)); + try { + execute(new GroovyCodeSource(f)); + } catch (IOException e) { + LOGGER.log(WARNING, "Failed to execute " + f, e); + } } } @@ -96,7 +110,7 @@ public class GroovyHookScript { try { createShell().evaluate(s); } catch (RuntimeException x) { - LOGGER.log(Level.WARNING, "Failed to run script " + s.getName(), x); + LOGGER.log(WARNING, "Failed to run script " + s.getName(), x); } }