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

Scanning MultiBranchProject fails and logs NoSuchMethodError

      Initial scan of branches in a multi-branch-project fails with an NoSuchMethodError in the log file.

      Steps to duplicate the problem:

      1. Clone, build, and run the docker instance
          $ git clone https://github.com/MarkEWaite/docker JENKINS-41948
          $ cd JENKINS-41948
          $ git checkout -b lts-with-plugins 4dc4b070e072c452fbb6b42b28dae3445a9e20da
          $ docker build -t jenkins:JENKINS-41948 .
          $ docker run -i --rm --publish 8080:8080 jenkins:JENKINS-41948
        
      2. Connect a web browser to that docker instance (http://localhost:8080)
      3. Open the "Git Client Plugin Folder"
      4. Open the "Git Client Branches - Maven" multi-branch job
      5. Click the "Scan Project" link and then the "Run Now" link to start branch indexing
      6. Scan will complete, but no projects will be created. Console log will report an error

      Log information is:

      Feb 10, 2017 5:48:26 PM hudson.model.Executor finish1
      SEVERE: Executor threw an exception
      java.lang.NoSuchMethodError: jenkins.branch.MultiBranchProject.getRootDirFor(Lhudson/model/Job;)Ljava/io/File;
              at com.github.mjdetullio.jenkins.plugins.multibranch.TemplateDrivenMultiBranchProject.getRootDirFor(TemplateDrivenMultiBranchProject.java:306)
              at com.github.mjdetullio.jenkins.plugins.multibranch.TemplateDrivenMultiBranchProject.getRootDirFor(TemplateDrivenMultiBranchProject.java:89)
              at hudson.model.AbstractItem.getRootDir(AbstractItem.java:177)
              at hudson.model.Items.getConfigFile(Items.java:350)
              at hudson.model.AbstractItem.getConfigFile(AbstractItem.java:506)
              at hudson.model.AbstractItem.save(AbstractItem.java:501)
              at hudson.model.Job.save(Job.java:186)
              at hudson.model.AbstractProject.save(AbstractProject.java:306)
              at hudson.BulkChange.commit(BulkChange.java:98)
              at com.github.mjdetullio.jenkins.plugins.multibranch.TemplateDrivenBranchProjectFactory.setBranch(TemplateDrivenBranchProjectFactory.java:104)
              at com.github.mjdetullio.jenkins.plugins.multibranch.FreeStyleBranchProjectFactory.newInstance(FreeStyleBranchProjectFactory.java:55)
              at com.github.mjdetullio.jenkins.plugins.multibranch.FreeStyleBranchProjectFactory.newInstance(FreeStyleBranchProjectFactory.java:38)
              at jenkins.branch.MultiBranchProject$SCMHeadObserverImpl.observe(MultiBranchProject.java:1972)
              at jenkins.plugins.git.AbstractGitSCMSource$2.run(AbstractGitSCMSource.java:315)
              at jenkins.plugins.git.AbstractGitSCMSource$2.run(AbstractGitSCMSource.java:239)
              at jenkins.plugins.git.AbstractGitSCMSource.doRetrieve(AbstractGitSCMSource.java:209)
              at jenkins.plugins.git.AbstractGitSCMSource.retrieve(AbstractGitSCMSource.java:239)
              at jenkins.scm.api.SCMSource._retrieve(SCMSource.java:300)
              at jenkins.scm.api.SCMSource.fetch(SCMSource.java:210)
              at jenkins.branch.MultiBranchProject.computeChildren(MultiBranchProject.java:634)
              at com.cloudbees.hudson.plugins.folder.computed.ComputedFolder.updateChildren(ComputedFolder.java:219)
              at com.cloudbees.hudson.plugins.folder.computed.FolderComputation.run(FolderComputation.java:141)
              at jenkins.branch.MultiBranchProject$BranchIndexing.run(MultiBranchProject.java:965)
              at hudson.model.ResourceController.execute(ResourceController.java:98)
              at hudson.model.Executor.run(Executor.java:404)
      

          [JENKINS-41948] Scanning MultiBranchProject fails and logs NoSuchMethodError

          Alastair D'Silva added a comment - - edited

          Downgrading tho branch api 2.0.2 resolves this problem, looks like that method was deleted (rather than deprecated) since then.

          Note that downgrading does not resolve JENKINS-41867

          Alastair D'Silva added a comment - - edited Downgrading tho branch api 2.0.2 resolves this problem, looks like that method was deleted (rather than deprecated) since then. Note that downgrading does not resolve JENKINS-41867

          Ahhhh I wonder if this is the root cause of JENKINS-41371

          Stephen Connolly added a comment - Ahhhh I wonder if this is the root cause of JENKINS-41371

          (The method wasn't deleted, rather the method is still inherited from the parent, but because the generic type is wider on the parent, the effective method signature changes)

          Stephen Connolly added a comment - (The method wasn't deleted, rather the method is still inherited from the parent, but because the generic type is wider on the parent, the effective method signature changes)

          Stephen Connolly added a comment - https://github.com/jenkinsci/multi-branch-project-plugin/pull/145

          Specifically this test should be confirming that this issue is solved

          Stephen Connolly added a comment - Specifically this test should be confirming that this issue is solved

          Jesse Glick added a comment -

          the method is still inherited from the parent, but because the generic type is wider on the parent, the effective method signature changes

          Then it is prudent to readd the original overload for compatibility.

          Jesse Glick added a comment - the method is still inherited from the parent, but because the generic type is wider on the parent, the effective method signature changes Then it is prudent to readd the original overload for compatibility.

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/jenkins/branch/MultiBranchProject.java
          http://jenkins-ci.org/commit/branch-api-plugin/87241112fec7d3a436790455b56d44dfb848778d
          Log:
          JENKINS-41948 Add bridge method

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/jenkins/branch/MultiBranchProject.java http://jenkins-ci.org/commit/branch-api-plugin/87241112fec7d3a436790455b56d44dfb848778d Log: JENKINS-41948 Add bridge method

          (Note even with the bridge method added in branch api 2.0.5 you will still need to upgrade the multi-branch-project-plugin. There is a -SNAPSHOT in JENKINS-41867 that has the required fixes integrated)

          Stephen Connolly added a comment - (Note even with the bridge method added in branch api 2.0.5 you will still need to upgrade the multi-branch-project-plugin. There is a -SNAPSHOT in JENKINS-41867 that has the required fixes integrated)

          Fixed in version 0.6

          Matthew DeTullio added a comment - Fixed in version 0.6

            mjdetullio Matthew DeTullio
            markewaite Mark Waite
            Votes:
            4 Vote for this issue
            Watchers:
            10 Start watching this issue

              Created:
              Updated:
              Resolved: