Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-19976

Cannot load a class in depended plugin after install before restart

    • Icon: Improvement Improvement
    • Resolution: Fixed
    • Icon: Minor Minor
    • core
    • None
    • Jenkins ver. 1.509.2

      At some point this started happening on attempt to delete a job:

      Status Code: 500
      Exception: java.lang.NoClassDefFoundError: org/jenkinsci/plugins/conditionalbuildstep/ConditionalBuildStepHelper
      Stacktrace:

      javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/jenkinsci/plugins/conditionalbuildstep/ConditionalBuildStepHelper
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:719)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:770)
      at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:241)
      at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:677)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:770)
      at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:241)
      at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:677)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:770)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:583)
      at org.kohsuke.stapler.Stapler.service(Stapler.java:214)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:45)
      at winstone.ServletConfiguration.execute(ServletConfiguration.java:248)
      at winstone.RequestDispatcher.forward(RequestDispatcher.java:333)
      at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:376)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:95)
      at hudson.plugins.audit_trail.AuditTrailFilter.doFilter(AuditTrailFilter.java:66)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98)
      at hudson.plugins.scm_sync_configuration.extensions.ScmSyncConfigurationFilter$1.call(ScmSyncConfigurationFilter.java:46)
      at hudson.plugins.scm_sync_configuration.ScmSyncConfigurationDataProvider.provideRequestDuring(ScmSyncConfigurationDataProvider.java:103)
      at hudson.plugins.scm_sync_configuration.extensions.ScmSyncConfigurationFilter.doFilter(ScmSyncConfigurationFilter.java:42)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98)
      at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:208)
      at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:181)
      at net.bull.javamelody.PluginMonitoringFilter.doFilter(PluginMonitoringFilter.java:86)
      at org.jvnet.hudson.plugins.monitoring.HudsonMonitoringFilter.doFilter(HudsonMonitoringFilter.java:84)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98)
      at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:87)
      at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
      at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
      at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)
      at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
      at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
      at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:174)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at jenkins.security.ApiTokenFilter.doFilter(ApiTokenFilter.java:64)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
      at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:66)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
      at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
      at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
      at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
      at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:50)
      at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
      at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
      at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
      at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
      at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
      at winstone.RequestDispatcher.forward(RequestDispatcher.java:331)
      at winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:227)
      at winstone.RequestHandlerThread.run(RequestHandlerThread.java:150)
      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
      at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
      at java.util.concurrent.FutureTask.run(FutureTask.java:166)
      at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      at java.lang.Thread.run(Thread.java:722)
      Caused by: java.lang.NoClassDefFoundError: org/jenkinsci/plugins/conditionalbuildstep/ConditionalBuildStepHelper
      at hudson.plugins.parameterizedtrigger.Plugin$RenameListener.deleteInConditionalBuildStep(Plugin.java:152)
      at hudson.plugins.parameterizedtrigger.Plugin$RenameListener.onDeleted(Plugin.java:105)
      at jenkins.model.Jenkins.onDeleted(Jenkins.java:2431)
      at jenkins.model.Jenkins.onDeleted(Jenkins.java:309)
      at hudson.model.AbstractItem.invokeOnDeleted(AbstractItem.java:523)
      at hudson.model.AbstractItem.delete(AbstractItem.java:510)
      at hudson.model.Job.delete(Job.java:587)
      at hudson.model.AbstractProject.doDoDelete(AbstractProject.java:1880)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:601)
      at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:288)
      at org.kohsuke.stapler.interceptor.RequirePOST$Processor.invoke(RequirePOST.java:29)
      at org.kohsuke.stapler.Function$InterceptedFunction.invoke(Function.java:389)
      at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:151)
      at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:90)
      at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:111)
      at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:677)
      ... 71 more

          [JENKINS-19976] Cannot load a class in depended plugin after install before restart

          Teemu Toivola added a comment -

          I've seen this same issue after installing Conditional BuildStep Plugin to Jenkins ver. 1.509.3 without doing a Jenkins restart. After upgrading to 1.509.4 and giving a restart, deleting jobs is again possible.

          Teemu Toivola added a comment - I've seen this same issue after installing Conditional BuildStep Plugin to Jenkins ver. 1.509.3 without doing a Jenkins restart. After upgrading to 1.509.4 and giving a restart, deleting jobs is again possible.

          Eric Pyle added a comment -

          We're also seeing this in Jenkins 1.466.2 with Conditional Build Step plugin 0.3. Note: the job you attempted to delete is removed on disk, but is not removed from Jenkins' memory. We restarted Jenkins this morning (running on Linux using Winstone) but still cannot delete jobs.

          Eric Pyle added a comment - We're also seeing this in Jenkins 1.466.2 with Conditional Build Step plugin 0.3. Note: the job you attempted to delete is removed on disk, but is not removed from Jenkins' memory. We restarted Jenkins this morning (running on Linux using Winstone) but still cannot delete jobs.

          Andrew Bayer added a comment -

          I'm seeing this with an older version of the conditional buildstep plugin and the latest version of the parameterized trigger plugin, 2.21 - I think it's related to JENKINS-19793?

          Andrew Bayer added a comment - I'm seeing this with an older version of the conditional buildstep plugin and the latest version of the parameterized trigger plugin, 2.21 - I think it's related to JENKINS-19793 ?

          Oleg Nenashev added a comment -

          I also suspect a parameterized trigger.
          ConditinalBuildStepHelper class have not even changed since its creation in 066515eab1dc35aa8fa9073cbfc71744fe8eb30d, so it cannot affect the issue.

          The real origin of the issue is https://github.com/jenkinsci/parameterized-trigger-plugin/pull/42/, but I don't see any critical changes here. I've also tried to create a reproducible scenario, but have not succeeded yet.

          Oleg Nenashev added a comment - I also suspect a parameterized trigger. ConditinalBuildStepHelper class have not even changed since its creation in 066515eab1dc35aa8fa9073cbfc71744fe8eb30d, so it cannot affect the issue. The real origin of the issue is https://github.com/jenkinsci/parameterized-trigger-plugin/pull/42/ , but I don't see any critical changes here. I've also tried to create a reproducible scenario, but have not succeeded yet.

          ikedam added a comment -

          How to reproduce:

          1. Install Parameterized Trigger plugin.
          2. Install Conditional BuildStep plugin.
          3. DO NOT RESTART JENKINS HERE.
          4. Create a job.
          5. Delete the job.

          Workaround:

          • Restart Jenkins after installed Conditional BuildStep plugin

          Cause:
          Parameterized Trigger plugin asks Jenkins whether Conditional BuildStep plugin is installed before accessing to it.
          But without restart after installing Conditional BuildStep plugin, though Jenkins states that it is installed, it is not visible to Parameterized Trigger plugin (to be exact, its class loaders).

          ikedam added a comment - How to reproduce: Install Parameterized Trigger plugin. Install Conditional BuildStep plugin. DO NOT RESTART JENKINS HERE. Create a job. Delete the job. Workaround: Restart Jenkins after installed Conditional BuildStep plugin Cause: Parameterized Trigger plugin asks Jenkins whether Conditional BuildStep plugin is installed before accessing to it. But without restart after installing Conditional BuildStep plugin, though Jenkins states that it is installed, it is not visible to Parameterized Trigger plugin (to be exact, its class loaders).

          The scenario described, can not be handled by a plugin. This only happens if an optional dependency (plugin) gets installed after the origin plugin. Jenkins tells (correctly) the plugin is installed, but the classes of the new plugin are not available in the class loader to the original plugin.
          If possible, then this can only be fixed in the core.

          Dominik Bartholdi added a comment - The scenario described, can not be handled by a plugin. This only happens if an optional dependency (plugin) gets installed after the origin plugin. Jenkins tells (correctly) the plugin is installed, but the classes of the new plugin are not available in the class loader to the original plugin. If possible, then this can only be fixed in the core.

          I also don't think this is a blocker - there is an easy workaround: restart. That's how it used to be earlier on anyway.

          Dominik Bartholdi added a comment - I also don't think this is a blocker - there is an easy workaround: restart. That's how it used to be earlier on anyway.

          Viktor Berke added a comment -

          After upgrading to 1.3.2 the same thing happens when I try to rename a job. And no, a restart won't solve it.

          javax.servlet.ServletException: java.lang.NoSuchMethodError: org.jenkinsci.plugins.conditionalbuildstep.ConditionalBuildStepHelper.getContainedBuilders(Lhudson/model/Project;Ljava/lang/Class;)Ljava/util/List;

          Viktor Berke added a comment - After upgrading to 1.3.2 the same thing happens when I try to rename a job. And no, a restart won't solve it. javax.servlet.ServletException: java.lang.NoSuchMethodError: org.jenkinsci.plugins.conditionalbuildstep.ConditionalBuildStepHelper.getContainedBuilders(Lhudson/model/Project;Ljava/lang/Class;)Ljava/util/List;

          Elliot Vos added a comment -

          I'm experiencing the same issue. I get this error:
          java.lang.NoSuchMethodError: org.jenkinsci.plugins.conditionalbuildstep.ConditionalBuildStepHelper.getContainedBuilders(Lhudson/model/Project;Ljava/lang/Class;)Ljava/util/List;

          Restarting will clear away the job I wanted to delete, but I get this error every time I delete a job after installing Conditional BuildStep plugin.

          Elliot Vos added a comment - I'm experiencing the same issue. I get this error: java.lang.NoSuchMethodError: org.jenkinsci.plugins.conditionalbuildstep.ConditionalBuildStepHelper.getContainedBuilders(Lhudson/model/Project;Ljava/lang/Class;)Ljava/util/List; Restarting will clear away the job I wanted to delete, but I get this error every time I delete a job after installing Conditional BuildStep plugin.

          Geoff Cummings added a comment - - edited

          I also started getting

          java.lang.NoSuchMethodError: org.jenkinsci.plugins.conditionalbuildstep.ConditionalBuildStepHelper.getContainedBuilders(Lhudson/model/Project;Ljava/lang/Class;)Ljava/util/List; 
          
          

          This happens after upgrading to 1.3.2 on two Jenkins 1.538 installations when I try to delete a job, even after restarting Jenkins.
          I had to downgrade to 1.3.1

          Only thing I notice is that the method signature has changed:

          -    public static <T extends BuildStep> List<T> getContainedBuilders(Project<?, ?> p, Class<T> type) {
          +    public static <T extends BuildStep> List<T> getContainedBuilders(AbstractProject<?, ?> ap, Class<T> type) {
          

          Geoff Cummings added a comment - - edited I also started getting java.lang.NoSuchMethodError: org.jenkinsci.plugins.conditionalbuildstep.ConditionalBuildStepHelper.getContainedBuilders(Lhudson/model/Project;Ljava/lang/ Class ;)Ljava/util/List; This happens after upgrading to 1.3.2 on two Jenkins 1.538 installations when I try to delete a job, even after restarting Jenkins. I had to downgrade to 1.3.1 Only thing I notice is that the method signature has changed: - public static <T extends BuildStep> List<T> getContainedBuilders(Project<?, ?> p, Class <T> type) { + public static <T extends BuildStep> List<T> getContainedBuilders(AbstractProject<?, ?> ap, Class <T> type) {

          ikedam added a comment -

          The problem causing NoSuchMethodError is completely different from the one causing NoClassDefFoundError.
          Create another issue.

          ikedam added a comment - The problem causing NoSuchMethodError is completely different from the one causing NoClassDefFoundError . Create another issue.

          cforce added a comment -

          cforce added a comment - https://issues.jenkins-ci.org/browse/JENKINS-20543

          I'm really sorry about this issue, but I tried hard to reproduce this issue and I'm not able to find a problem with core 1.509.2.
          Looking at the stacktrace, I see there are many more plugins installed - e.g. scm-sync and others. Can anyone having this issue please try to reproduce it with a minimal set of plugins?

          • Do you really only have this issue when deleting a job?
          • What about renaming?
          • Does the problem exist only on jobs with a special configuration item?

          Dominik Bartholdi added a comment - I'm really sorry about this issue, but I tried hard to reproduce this issue and I'm not able to find a problem with core 1.509.2. Looking at the stacktrace, I see there are many more plugins installed - e.g. scm-sync and others. Can anyone having this issue please try to reproduce it with a minimal set of plugins? Do you really only have this issue when deleting a job? What about renaming? Does the problem exist only on jobs with a special configuration item?

          Schalk Cronjé added a comment - - edited

          I can also confirm that downgrading from 1.32 to 1.31 solves the problem. Very close to Geoff's observation, except that our rig was running 1.537.

          Schalk Cronjé added a comment - - edited I can also confirm that downgrading from 1.32 to 1.31 solves the problem. Very close to Geoff's observation, except that our rig was running 1.537.

          Dominik Bartholdi added a comment - - edited

          The issue Geoff is was talking about (JENKINS-20543), is fixed in 1.33 of the conditional-buildstep-plugin - but this is something completely different...

          Dominik Bartholdi added a comment - - edited The issue Geoff is was talking about ( JENKINS-20543 ), is fixed in 1.33 of the conditional-buildstep-plugin - but this is something completely different...

          ikedam added a comment -

          As I pointed before, this is a limitation of Jenkins.
          You should restart Jenkins to have plugins access to a newly installed plugin.

          This is caused for Jenkins have plugins cache depended libraries.

          You can avoid this problem by launching Jenkins with -Dhudson.PluginManager.noFastLookup=true, which disabled the caching feature.

          This is not a issue of a specific plugin, nor a bug.
          I changed the summary and the issue type.

          ikedam added a comment - As I pointed before, this is a limitation of Jenkins. You should restart Jenkins to have plugins access to a newly installed plugin. This is caused for Jenkins have plugins cache depended libraries. You can avoid this problem by launching Jenkins with -Dhudson.PluginManager.noFastLookup=true , which disabled the caching feature. This is not a issue of a specific plugin, nor a bug. I changed the summary and the issue type.

          ikedam added a comment -

          ikedam added a comment - I sent a pull request: https://github.com/jenkinsci/jenkins/pull/1054

          Code changed in jenkins
          User: ikedam
          Path:
          core/src/main/java/hudson/ClassicPluginStrategy.java
          core/src/main/java/hudson/PluginManager.java
          core/src/main/java/hudson/PluginStrategy.java
          http://jenkins-ci.org/commit/jenkins/87e2a7e8d5ac995a05b82c1e7839285102c111d0
          Log:
          [FIXED JENKINS-19976] Enable plugins to load classes from optionally depending plugins even without restarting after depended ones installed.

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: ikedam Path: core/src/main/java/hudson/ClassicPluginStrategy.java core/src/main/java/hudson/PluginManager.java core/src/main/java/hudson/PluginStrategy.java http://jenkins-ci.org/commit/jenkins/87e2a7e8d5ac995a05b82c1e7839285102c111d0 Log: [FIXED JENKINS-19976] Enable plugins to load classes from optionally depending plugins even without restarting after depended ones installed.

          Code changed in jenkins
          User: ikedam
          Path:
          test/src/test/java/hudson/PluginManagerTest.java
          http://jenkins-ci.org/commit/jenkins/8fde2e18a3a6da843d7719844e1fdd737e652c74
          Log:
          JENKINS-19976 Tests for the behavior of loading a depended plugin dynamically.

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: ikedam Path: test/src/test/java/hudson/PluginManagerTest.java http://jenkins-ci.org/commit/jenkins/8fde2e18a3a6da843d7719844e1fdd737e652c74 Log: JENKINS-19976 Tests for the behavior of loading a depended plugin dynamically.

          Code changed in jenkins
          User: ikedam
          Path:
          test/src/test/java/hudson/PluginManagerTest.java
          http://jenkins-ci.org/commit/jenkins/536bac6425b465ad98650083ba81655265e5508f
          Log:
          JENKINS-19976 Added tests how dynamic load works for @Extension.

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: ikedam Path: test/src/test/java/hudson/PluginManagerTest.java http://jenkins-ci.org/commit/jenkins/536bac6425b465ad98650083ba81655265e5508f Log: JENKINS-19976 Added tests how dynamic load works for @Extension.

          Code changed in jenkins
          User: ikedam
          Path:
          test/src/test/resources/plugins/dependee.hpi
          test/src/test/resources/plugins/depender.hpi
          http://jenkins-ci.org/commit/jenkins/2c047e0264a03465a3c017abf86c035a011c2479
          Log:
          JENKINS-19976 Added plugins to test dynamic loading.

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: ikedam Path: test/src/test/resources/plugins/dependee.hpi test/src/test/resources/plugins/depender.hpi http://jenkins-ci.org/commit/jenkins/2c047e0264a03465a3c017abf86c035a011c2479 Log: JENKINS-19976 Added plugins to test dynamic loading.

          Code changed in jenkins
          User: ikedam
          Path:
          test/src/test/java/hudson/PluginManagerTest.java
          http://jenkins-ci.org/commit/jenkins/38f670cf39224c40752e47e279710afeebc585e7
          Log:
          JENKINS-19976 Fixed confusing comments.

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: ikedam Path: test/src/test/java/hudson/PluginManagerTest.java http://jenkins-ci.org/commit/jenkins/38f670cf39224c40752e47e279710afeebc585e7 Log: JENKINS-19976 Fixed confusing comments.

          Code changed in jenkins
          User: Jesse Glick
          Path:
          core/src/main/java/hudson/ClassicPluginStrategy.java
          core/src/main/java/hudson/PluginManager.java
          core/src/main/java/hudson/PluginStrategy.java
          test/src/test/java/hudson/PluginManagerTest.java
          test/src/test/resources/plugins/dependee.hpi
          test/src/test/resources/plugins/depender.hpi
          http://jenkins-ci.org/commit/jenkins/df8df45c27a229a6e3e2358b98db03a6028d8fc4
          Log:
          [FIXED JENKINS-19976] Merged #1054: fix class loading from dynamically installed optional dependencies.

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Jesse Glick Path: core/src/main/java/hudson/ClassicPluginStrategy.java core/src/main/java/hudson/PluginManager.java core/src/main/java/hudson/PluginStrategy.java test/src/test/java/hudson/PluginManagerTest.java test/src/test/resources/plugins/dependee.hpi test/src/test/resources/plugins/depender.hpi http://jenkins-ci.org/commit/jenkins/df8df45c27a229a6e3e2358b98db03a6028d8fc4 Log: [FIXED JENKINS-19976] Merged #1054: fix class loading from dynamically installed optional dependencies.

          Code changed in jenkins
          User: Jesse Glick
          Path:
          changelog.html
          core/src/main/java/hudson/ClassicPluginStrategy.java
          core/src/main/java/hudson/PluginManager.java
          core/src/main/java/hudson/PluginStrategy.java
          test/src/test/java/hudson/PluginManagerTest.java
          http://jenkins-ci.org/commit/jenkins/56b360d6f34a1091a8bf5b73f22baca4072560ef
          Log:
          JENKINS-19976 Touch-ups to PR #1054.

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Jesse Glick Path: changelog.html core/src/main/java/hudson/ClassicPluginStrategy.java core/src/main/java/hudson/PluginManager.java core/src/main/java/hudson/PluginStrategy.java test/src/test/java/hudson/PluginManagerTest.java http://jenkins-ci.org/commit/jenkins/56b360d6f34a1091a8bf5b73f22baca4072560ef Log: JENKINS-19976 Touch-ups to PR #1054.

          dogfood added a comment -

          Integrated in jenkins_main_trunk #3250
          [FIXED JENKINS-19976] Enable plugins to load classes from optionally depending plugins even without restarting after depended ones installed. (Revision 87e2a7e8d5ac995a05b82c1e7839285102c111d0)
          JENKINS-19976 Tests for the behavior of loading a depended plugin dynamically. (Revision 8fde2e18a3a6da843d7719844e1fdd737e652c74)
          JENKINS-19976 Added tests how dynamic load works for @Extension. (Revision 536bac6425b465ad98650083ba81655265e5508f)
          JENKINS-19976 Added plugins to test dynamic loading. (Revision 2c047e0264a03465a3c017abf86c035a011c2479)
          JENKINS-19976 Fixed confusing comments. (Revision 38f670cf39224c40752e47e279710afeebc585e7)
          JENKINS-19976 Touch-ups to PR #1054. (Revision 56b360d6f34a1091a8bf5b73f22baca4072560ef)

          Result = SUCCESS
          devld : 87e2a7e8d5ac995a05b82c1e7839285102c111d0
          Files :

          • core/src/main/java/hudson/PluginStrategy.java
          • core/src/main/java/hudson/PluginManager.java
          • core/src/main/java/hudson/ClassicPluginStrategy.java

          devld : 8fde2e18a3a6da843d7719844e1fdd737e652c74
          Files :

          • test/src/test/java/hudson/PluginManagerTest.java

          devld : 536bac6425b465ad98650083ba81655265e5508f
          Files :

          • test/src/test/java/hudson/PluginManagerTest.java

          devld : 2c047e0264a03465a3c017abf86c035a011c2479
          Files :

          • test/src/test/resources/plugins/depender.hpi
          • test/src/test/resources/plugins/dependee.hpi

          devld : 38f670cf39224c40752e47e279710afeebc585e7
          Files :

          • test/src/test/java/hudson/PluginManagerTest.java

          Jesse Glick : 56b360d6f34a1091a8bf5b73f22baca4072560ef
          Files :

          • core/src/main/java/hudson/PluginManager.java
          • core/src/main/java/hudson/PluginStrategy.java
          • test/src/test/java/hudson/PluginManagerTest.java
          • core/src/main/java/hudson/ClassicPluginStrategy.java
          • changelog.html

          dogfood added a comment - Integrated in jenkins_main_trunk #3250 [FIXED JENKINS-19976] Enable plugins to load classes from optionally depending plugins even without restarting after depended ones installed. (Revision 87e2a7e8d5ac995a05b82c1e7839285102c111d0) JENKINS-19976 Tests for the behavior of loading a depended plugin dynamically. (Revision 8fde2e18a3a6da843d7719844e1fdd737e652c74) JENKINS-19976 Added tests how dynamic load works for @Extension. (Revision 536bac6425b465ad98650083ba81655265e5508f) JENKINS-19976 Added plugins to test dynamic loading. (Revision 2c047e0264a03465a3c017abf86c035a011c2479) JENKINS-19976 Fixed confusing comments. (Revision 38f670cf39224c40752e47e279710afeebc585e7) JENKINS-19976 Touch-ups to PR #1054. (Revision 56b360d6f34a1091a8bf5b73f22baca4072560ef) Result = SUCCESS devld : 87e2a7e8d5ac995a05b82c1e7839285102c111d0 Files : core/src/main/java/hudson/PluginStrategy.java core/src/main/java/hudson/PluginManager.java core/src/main/java/hudson/ClassicPluginStrategy.java devld : 8fde2e18a3a6da843d7719844e1fdd737e652c74 Files : test/src/test/java/hudson/PluginManagerTest.java devld : 536bac6425b465ad98650083ba81655265e5508f Files : test/src/test/java/hudson/PluginManagerTest.java devld : 2c047e0264a03465a3c017abf86c035a011c2479 Files : test/src/test/resources/plugins/depender.hpi test/src/test/resources/plugins/dependee.hpi devld : 38f670cf39224c40752e47e279710afeebc585e7 Files : test/src/test/java/hudson/PluginManagerTest.java Jesse Glick : 56b360d6f34a1091a8bf5b73f22baca4072560ef Files : core/src/main/java/hudson/PluginManager.java core/src/main/java/hudson/PluginStrategy.java test/src/test/java/hudson/PluginManagerTest.java core/src/main/java/hudson/ClassicPluginStrategy.java changelog.html

          at which LTS version this was fixed
          i am facing this issue at 1.532.3 release on (2014/04/11).

          hiteswar kumar added a comment - at which LTS version this was fixed i am facing this issue at 1.532.3 release on (2014/04/11).

          Daniel Beck added a comment -

          It's not in any LTS. Just restart your instance.

          Daniel Beck added a comment - It's not in any LTS. Just restart your instance.

          Thanks Daniel for your comment.
          Jenkins worked fine after restart.
          Dont you think it should be fixed at core or somewhere so such plugin(dependent on other plugins) could be installed by GUI directly without restarting instance ?
          please share you comment.

          hiteswar kumar added a comment - Thanks Daniel for your comment. Jenkins worked fine after restart. Dont you think it should be fixed at core or somewhere so such plugin(dependent on other plugins) could be installed by GUI directly without restarting instance ? please share you comment.

            ikedam ikedam
            pancake pancake
            Votes:
            3 Vote for this issue
            Watchers:
            16 Start watching this issue

              Created:
              Updated:
              Resolved: