提交 7110ddb7 编写于 作者: K Kohsuke Kawaguchi

[JENKINS-12302]

Make sure that we don't require Jenkins.getInstance() on CLICommand, since it can run on slaves.
上级 196aadc6
......@@ -472,17 +472,20 @@ public abstract class CLICommand implements ExtensionPoint, Cloneable {
static {
// register option handlers that are defined
ClassLoaders cls = new ClassLoaders();
cls.put(Jenkins.getInstance().getPluginManager().uberClassLoader);
ResourceNameIterator servicesIter =
new DiscoverServiceNames(cls).findResourceNames(OptionHandler.class.getName());
final ResourceClassIterator itr =
new DiscoverClasses(cls).findResourceClasses(servicesIter);
while(itr.hasNext()) {
Class h = itr.nextResourceClass().loadClass();
Class c = Types.erasure(Types.getTypeArgument(Types.getBaseClass(h, OptionHandler.class), 0));
CmdLineParser.registerHandler(c,h);
Jenkins j = Jenkins.getInstance();
if (j!=null) {// only when running on the master
cls.put(j.getPluginManager().uberClassLoader);
ResourceNameIterator servicesIter =
new DiscoverServiceNames(cls).findResourceNames(OptionHandler.class.getName());
final ResourceClassIterator itr =
new DiscoverClasses(cls).findResourceClasses(servicesIter);
while(itr.hasNext()) {
Class h = itr.nextResourceClass().loadClass();
Class c = Types.erasure(Types.getTypeArgument(Types.getBaseClass(h, OptionHandler.class), 0));
CmdLineParser.registerHandler(c,h);
}
}
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册