diff --git a/core/src/main/java/hudson/ExtensionList.java b/core/src/main/java/hudson/ExtensionList.java index 1177876c016e647e665019dd49fb57d1355f681e..c168789ebafa4b9b49d1e3444d461424df7a02ca 100644 --- a/core/src/main/java/hudson/ExtensionList.java +++ b/core/src/main/java/hudson/ExtensionList.java @@ -80,7 +80,7 @@ public class ExtensionList extends AbstractList { private volatile List> extensions; /** - * Place to store manually registered instances with the per-Jenkins scope. + * Place to store manually registered instances with the per-Hudson scope. * {@link CopyOnWriteArrayList} is used here to support concurrent iterations and mutation. */ private final CopyOnWriteArrayList> legacyInstances; diff --git a/core/src/main/java/hudson/slaves/SlaveComputer.java b/core/src/main/java/hudson/slaves/SlaveComputer.java index f808256798732f10ebe614a33ea76d23f4112c87..16a9a334fae3de2c768a4475f5a271a6857467b2 100644 --- a/core/src/main/java/hudson/slaves/SlaveComputer.java +++ b/core/src/main/java/hudson/slaves/SlaveComputer.java @@ -197,7 +197,6 @@ public class SlaveComputer extends Computer { cl.preLaunch(SlaveComputer.this, taskListener); launcher.launch(SlaveComputer.this, taskListener); - return null; } catch (AbortException e) { taskListener.error(e.getMessage()); throw e; @@ -216,6 +215,10 @@ public class SlaveComputer extends Computer { cl.onLaunchFailure(SlaveComputer.this, taskListener); } } + + if (channel==null) + throw new IOException("Slave failed to connect, even though the launcher didn't report it. See the log output for details."); + return null; } }); }