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

multi-scm plugin causes NPE to console log when configuring multi-branch pipeline job

XMLWordPrintable

      The multiple-scms plugin causes a null pointer exception in the console log when configuring a multi-branch pipeline job.

      If I remove the multiple-scms plugin, no NPE is reported.

      The multiple-scms plugin is not used in the job definition, (nor anywhere in my environment), so I removed it from my installation. When I remove it, the null pointer exception no longer appears.

      This bug is logged in case others encounter a similar stack trace.

      The stack trace is:

          WARNING: Caught exception evaluating: h.filterDescriptors(it,attrs.descriptors) in /job/Git-Client-Folder/job/git-client-pipeline-github/configure. Reason: java.lang.NullPoint
      erException
          java.lang.NullPointerException
                  at hudson.model.DescriptorVisibilityFilter.apply(DescriptorVisibilityFilter.java:72)
                  at hudson.Functions.filterDescriptors(Functions.java:1863)
                  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:498)
                  at org.apache.commons.jexl.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:258)
                  at org.apache.commons.jexl.parser.ASTMethod.execute(ASTMethod.java:104)
                  at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83)
                  at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57)
                  at org.apache.commons.jexl.parser.ASTReferenceExpression.value(ASTReferenceExpression.java:51)
                  at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:80)
                  at hudson.ExpressionFactory2$JexlExpression.evaluate(ExpressionFactory2.java:74)
                  at org.apache.commons.jelly.tags.core.CoreTagLibrary$3.run(CoreTagLibrary.java:134)
                  at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
                  at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
                  at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
                  at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
                  at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
                  at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
                  at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120)
                  at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99)
                  at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
      

      Steps to duplicate the bug:

      1. Clone my docker repository and checkout this branch
            $ git lfs clone https://github.com/MarkEWaite/docker-lfs JENKINS-45085
            $ cd JENKINS-45085
            $ git lfs fetch origin origin/explore-JENKINS-45085
            $ git checkout -b JENKINS-45085 JENKINS-45085
        
      2. Build and run the docker image
            $ docker build -t jenkins:JENKINS-45085 .
            $ docker run -i --rm --publish 8080:8080 jenkins:JENKINS-45085
        
      3. Open the Jenkins URL (http://localhost:8080), open "Git Client Plugin Folder" and "Git Client Branches - Jenkinsfile (GitHub)"
      4. Click the "Configure" link while watching the console log - null pointer exception will be reported to console (but not to the user interface)

      Steps to show that removing multiple-scms resolves the problem:

      1. Checkout branch without multiple-scms
            $ git lfs clone https://github.com/MarkEWaite/docker-lfs JENKINS-45085-avoided
            $ cd JENKINS-45085-avoided
            $ git lfs fetch origin origin/explore-JENKINS-45085
            $ git checkout -b JENKINS-45085-avoided JENKINS-45085-avoided
        
      2. Build and run the docker image
            $ docker build -t jenkins:JENKINS-45085-avoided .
            $ docker run -i --rm --publish 8080:8080 jenkins:JENKINS-45085-avoided
        
      3. Open the Jenkins URL (http://localhost:8080), open "Git Client Plugin Folder" and "Git Client Branches - Jenkinsfile (GitHub)"
      4. Click the "Configure" link while watching the console log - null pointer exception will not be reported

            kbell Kevin Bell
            markewaite Mark Waite
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: