diff --git a/core/src/main/java/hudson/ExtensionList.java b/core/src/main/java/hudson/ExtensionList.java index 393a532e720ff577692637547bcd65f0bd995625..1158971d09ca11c49be7b966cc4b4f026b50489b 100644 --- a/core/src/main/java/hudson/ExtensionList.java +++ b/core/src/main/java/hudson/ExtensionList.java @@ -252,9 +252,12 @@ public class ExtensionList extends AbstractList { if (extensions==null) return; // not yet loaded. when we load it, we'll load everything visible by then, so no work needed - List> l = Lists.newArrayList(extensions); - l.addAll(load(delta)); - extensions = sort(l); + Collection> found = load(delta); + if (!found.isEmpty()) { + List> l = Lists.newArrayList(extensions); + l.addAll(found); + extensions = sort(l); + } } } diff --git a/core/src/main/java/hudson/PluginManager.java b/core/src/main/java/hudson/PluginManager.java index bf0fb420320039768a7f2932cf521d2425d2805d..2716ce223493380625e60b30305cbc2761c5b915 100644 --- a/core/src/main/java/hudson/PluginManager.java +++ b/core/src/main/java/hudson/PluginManager.java @@ -344,6 +344,8 @@ public abstract class PluginManager extends AbstractModelObject { p.resolvePluginDependencies(); strategy.load(p); + Jenkins.getInstance().refreshExtensions(); + p.getPlugin().postInitialize(); } catch (Exception e) { failedPlugins.add(new FailedPlugin(p.getShortName(), e)); @@ -361,7 +363,6 @@ public abstract class PluginManager extends AbstractModelObject { } }.discoverTasks(r)); new InitReactorRunner().run(r); - Jenkins.getInstance().refreshExtensions(); } /**