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

Build Name Setter plugin doesn't depend on Token Macro properly

    XMLWordPrintable

Details

    Description

      Install version 1.5.1 from the update center on a fresh install will result in the following error when I navigate to a Freestyle job configuration page:

      Nov 20, 2015 6:45:11 AM hudson.ExtensionFinder$GuiceFinder$FaultTolerantScope$1 error
      WARNING: Failed to instantiate Key[type=org.jenkinsci.plugins.buildnameupdater.BuildNameUpdater$DescriptorImpl, annotation=[none]]; skipping this component
      com.google.inject.ProvisionException: Guice provision errors:
      
      1) Error injecting constructor, java.lang.NoClassDefFoundError: org/jenkinsci/plugins/tokenmacro/MacroEvaluationException
        at org.jenkinsci.plugins.buildnameupdater.BuildNameUpdater$DescriptorImpl.<init>(BuildNameUpdater.java:179)
      
      1 error
      	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:52)
      	at com.google.inject.Scopes$1$1.get(Scopes.java:65)
      	at hudson.ExtensionFinder$GuiceFinder$FaultTolerantScope$1.get(ExtensionFinder.java:428)
      	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
      	at com.google.inject.internal.InjectorImpl$3$1.call(InjectorImpl.java:1005)
      	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1051)
      	at com.google.inject.internal.InjectorImpl$3.get(InjectorImpl.java:1001)
      	at hudson.ExtensionFinder$GuiceFinder._find(ExtensionFinder.java:390)
      	at hudson.ExtensionFinder$GuiceFinder.find(ExtensionFinder.java:381)
      	at hudson.ClassicPluginStrategy.findComponents(ClassicPluginStrategy.java:388)
      	at hudson.ExtensionList.load(ExtensionList.java:349)
      	at hudson.ExtensionList.ensureLoaded(ExtensionList.java:287)
      	at hudson.ExtensionList.iterator(ExtensionList.java:156)
      	at hudson.diagnosis.NullIdDescriptorMonitor.verify(NullIdDescriptorMonitor.java:68)
      	at hudson.diagnosis.NullIdDescriptorMonitor.verifyId(NullIdDescriptorMonitor.java:89)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at hudson.init.TaskMethodFinder.invoke(TaskMethodFinder.java:106)
      	at hudson.init.TaskMethodFinder$TaskImpl.run(TaskMethodFinder.java:176)
      	at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:282)
      	at jenkins.model.Jenkins$8.runTask(Jenkins.java:915)
      	at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:210)
      	at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      	at java.lang.Thread.run(Thread.java:745)
      Caused by: java.lang.NoClassDefFoundError: org/jenkinsci/plugins/tokenmacro/MacroEvaluationException
      	at java.lang.Class.getDeclaredMethods0(Native Method)
      	at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
      	at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
      	at java.lang.Class.getMethod0(Class.java:3018)
      	at java.lang.Class.getMethod(Class.java:1784)
      	at hudson.model.Descriptor.<init>(Descriptor.java:284)
      	at hudson.tasks.BuildStepDescriptor.<init>(BuildStepDescriptor.java:56)
      	at org.jenkinsci.plugins.buildnameupdater.BuildNameUpdater$DescriptorImpl.<init>(BuildNameUpdater.java:179)
      	at org.jenkinsci.plugins.buildnameupdater.BuildNameUpdater$DescriptorImpl$$FastClassByGuice$$7fdfa18f.newInstance(<generated>)
      	at com.google.inject.internal.cglib.reflect.$FastConstructor.newInstance(FastConstructor.java:40)
      	at com.google.inject.internal.DefaultConstructionProxyFactory$1.newInstance(DefaultConstructionProxyFactory.java:61)
      	at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:108)
      	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:88)
      	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:269)
      	at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
      	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1058)
      	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
      	... 27 more
      Caused by: java.lang.ClassNotFoundException: org.jenkinsci.plugins.tokenmacro.MacroEvaluationException
      	at jenkins.util.AntClassLoader.findClassInComponents(AntClassLoader.java:1376)
      	at jenkins.util.AntClassLoader.findClass(AntClassLoader.java:1326)
      	at jenkins.util.AntClassLoader.loadClass(AntClassLoader.java:1079)
      	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
      	... 44 more
      

      Workaround

      The workaround that I have discovered is to manually install the Token Macro plugin, however the Build Name Setter plugin will not properly show up on the configuration page until after a restart of the Jenkins server

      Attachments

        Activity

          Code changed in jenkins
          User: Łukasz Jąder
          Path:
          pom.xml
          http://jenkins-ci.org/commit/build-name-setter-plugin/08b0038c9b24b28be47a45d7d82a0dfd8979f74b
          Log:
          JENKINS-31681 Remove maven optional setting from token-macro dependency

          As reported in the issue, installation on fresh Jenkins triggers
          java.lang.NoClassDefFoundError: org/jenkinsci/plugins/tokenmacro/MacroEvaluationException

          None of current "token-consumer" has token-macro dependency optional,
          so this change goes along with common usage/knowledge.

          scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Łukasz Jąder Path: pom.xml http://jenkins-ci.org/commit/build-name-setter-plugin/08b0038c9b24b28be47a45d7d82a0dfd8979f74b Log: JENKINS-31681 Remove maven optional setting from token-macro dependency As reported in the issue, installation on fresh Jenkins triggers java.lang.NoClassDefFoundError: org/jenkinsci/plugins/tokenmacro/MacroEvaluationException None of current "token-consumer" has token-macro dependency optional, so this change goes along with common usage/knowledge.
          ljader Łukasz Jąder added a comment - - edited danielbeck and rtyler , pull request has been filled https://github.com/jenkinsci/build-name-setter-plugin/pull/9

          Code changed in jenkins
          User: Leo
          Path:
          pom.xml
          src/test/java/org/jenkinsci/plugins/buildnamesetter/BuildNameSetterTest.java
          http://jenkins-ci.org/commit/build-name-setter-plugin/028df5d8a31cfbad08ded181d77705259c795a07
          Log:
          Merge pull request #9 from jenkinsci/fix-JENKINS-31681

          JENKINS-31681 Remove maven optional setting from token-macro dependency

          Compare: https://github.com/jenkinsci/build-name-setter-plugin/compare/fcf494d65f50...028df5d8a31c

          scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Leo Path: pom.xml src/test/java/org/jenkinsci/plugins/buildnamesetter/BuildNameSetterTest.java http://jenkins-ci.org/commit/build-name-setter-plugin/028df5d8a31cfbad08ded181d77705259c795a07 Log: Merge pull request #9 from jenkinsci/fix- JENKINS-31681 JENKINS-31681 Remove maven optional setting from token-macro dependency Compare: https://github.com/jenkinsci/build-name-setter-plugin/compare/fcf494d65f50...028df5d8a31c

          People

            le0 Lev Mishin
            rtyler R. Tyler Croy
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: