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

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

      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

          [JENKINS-45085] multi-scm plugin causes NPE to console log when configuring multi-branch pipeline job

          Mark Waite created issue -
          Mark Waite made changes -
          Description Original: 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:

          {noformat}
              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)
          {noformat}

          Steps to duplicate the bug:

          # Clone my docker repository and checkout this branch
              git lfs clone https://github.com/MarkEWaite/docker-lfs JENKINS-xxx
              cd JENKINS-xxx
              git checkout -b JENKINS-xxx -t origin/JENKINS-xxx
          # Build and run the docker image
              docker build ...
              docker run ....
          # Open the Jenkins URL (http://localhost:8080), open "Git Client Plugin Folder" and "Git Client Branches - Jenkinsfile (GitHub)"
          # 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 (based on previous):

          # Checkout branch without multiple-scms
              git checkout -b JENKINS-xxx-no-multiple-scms -t origin/JENKINS-xxx-no-multiple-scms
          # Build and run the docker image
              docker build ...
              docker run ....
          # Open the Jenkins URL (http://localhost:8080), open "Git Client Plugin Folder" and "Git Client Branches - Jenkinsfile (GitHub)"
          # Click the "Configure" link while watching the console log - null pointer exception will be reported to console (but not to the user interface)

          (more details to follow once Jira assigns the bug number)
          New: 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:

          {noformat}
              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)
          {noformat}

          Steps to duplicate the bug:

          # Clone my docker repository and checkout this branch
          {noformat}
              $ 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
          {noformat}
          # Build and run the docker image
          {noformat}
              $ docker build -t jenkins:JENKINS-45085 .
              $ docker run -i --rm --publish 8080:8080 jenkins:JENKINS-45085
          {noformat}
          # Open the Jenkins URL (http://localhost:8080), open "Git Client Plugin Folder" and "Git Client Branches - Jenkinsfile (GitHub)"
          # 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 (based on previous):

          # Checkout branch without multiple-scms
          {noformat}
              $ 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
          {noformat}
          # Build and run the docker image
          {noformat}
              $ docker build -t jenkins:JENKINS-45085-avoided .
              $ docker run -i --rm --publish 8080:8080 jenkins:JENKINS-45085-avoided
          {noformat}
          # Open the Jenkins URL (http://localhost:8080), open "Git Client Plugin Folder" and "Git Client Branches - Jenkinsfile (GitHub)"
          # Click the "Configure" link while watching the console log - null pointer exception will be reported to console (but not to the user interface)
          Mark Waite made changes -
          Description Original: 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:

          {noformat}
              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)
          {noformat}

          Steps to duplicate the bug:

          # Clone my docker repository and checkout this branch
          {noformat}
              $ 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
          {noformat}
          # Build and run the docker image
          {noformat}
              $ docker build -t jenkins:JENKINS-45085 .
              $ docker run -i --rm --publish 8080:8080 jenkins:JENKINS-45085
          {noformat}
          # Open the Jenkins URL (http://localhost:8080), open "Git Client Plugin Folder" and "Git Client Branches - Jenkinsfile (GitHub)"
          # 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 (based on previous):

          # Checkout branch without multiple-scms
          {noformat}
              $ 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
          {noformat}
          # Build and run the docker image
          {noformat}
              $ docker build -t jenkins:JENKINS-45085-avoided .
              $ docker run -i --rm --publish 8080:8080 jenkins:JENKINS-45085-avoided
          {noformat}
          # Open the Jenkins URL (http://localhost:8080), open "Git Client Plugin Folder" and "Git Client Branches - Jenkinsfile (GitHub)"
          # Click the "Configure" link while watching the console log - null pointer exception will be reported to console (but not to the user interface)
          New: 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:

          {noformat}
              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)
          {noformat}

          Steps to duplicate the bug:

          # Clone my docker repository and checkout this branch
          {noformat}
              $ 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
          {noformat}
          # Build and run the docker image
          {noformat}
              $ docker build -t jenkins:JENKINS-45085 .
              $ docker run -i --rm --publish 8080:8080 jenkins:JENKINS-45085
          {noformat}
          # Open the Jenkins URL (http://localhost:8080), open "Git Client Plugin Folder" and "Git Client Branches - Jenkinsfile (GitHub)"
          # 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 (based on previous):

          # Checkout branch without multiple-scms
          {noformat}
              $ 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
          {noformat}
          # Build and run the docker image
          {noformat}
              $ docker build -t jenkins:JENKINS-45085-avoided .
              $ docker run -i --rm --publish 8080:8080 jenkins:JENKINS-45085-avoided
          {noformat}
          # Open the Jenkins URL (http://localhost:8080), open "Git Client Plugin Folder" and "Git Client Branches - Jenkinsfile (GitHub)"
          # Click the "Configure" link while watching the console log - null pointer exception will not be reported
          Mark Waite made changes -
          Description Original: 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:

          {noformat}
              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)
          {noformat}

          Steps to duplicate the bug:

          # Clone my docker repository and checkout this branch
          {noformat}
              $ 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
          {noformat}
          # Build and run the docker image
          {noformat}
              $ docker build -t jenkins:JENKINS-45085 .
              $ docker run -i --rm --publish 8080:8080 jenkins:JENKINS-45085
          {noformat}
          # Open the Jenkins URL (http://localhost:8080), open "Git Client Plugin Folder" and "Git Client Branches - Jenkinsfile (GitHub)"
          # 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 (based on previous):

          # Checkout branch without multiple-scms
          {noformat}
              $ 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
          {noformat}
          # Build and run the docker image
          {noformat}
              $ docker build -t jenkins:JENKINS-45085-avoided .
              $ docker run -i --rm --publish 8080:8080 jenkins:JENKINS-45085-avoided
          {noformat}
          # Open the Jenkins URL (http://localhost:8080), open "Git Client Plugin Folder" and "Git Client Branches - Jenkinsfile (GitHub)"
          # Click the "Configure" link while watching the console log - null pointer exception will not be reported
          New: 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:

          {noformat}
              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)
          {noformat}

          Steps to duplicate the bug:

          # Clone my docker repository and checkout this branch
          {noformat}
              $ 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
          {noformat}
          # Build and run the docker image
          {noformat}
              $ docker build -t jenkins:JENKINS-45085 .
              $ docker run -i --rm --publish 8080:8080 jenkins:JENKINS-45085
          {noformat}
          # Open the Jenkins URL (http://localhost:8080), open "Git Client Plugin Folder" and "Git Client Branches - Jenkinsfile (GitHub)"
          # 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:

          # Checkout branch without multiple-scms
          {noformat}
              $ 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
          {noformat}
          # Build and run the docker image
          {noformat}
              $ docker build -t jenkins:JENKINS-45085-avoided .
              $ docker run -i --rm --publish 8080:8080 jenkins:JENKINS-45085-avoided
          {noformat}
          # Open the Jenkins URL (http://localhost:8080), open "Git Client Plugin Folder" and "Git Client Branches - Jenkinsfile (GitHub)"
          # Click the "Configure" link while watching the console log - null pointer exception will not be reported
          Test User made changes -
          Link New: This issue is related to JENKINS-39598 [ JENKINS-39598 ]
          Jesse Glick made changes -
          Resolution New: Duplicate [ 3 ]
          Status Original: Open [ 1 ] New: Resolved [ 5 ]
          Mark Waite made changes -
          Status Original: Resolved [ 5 ] New: Closed [ 6 ]
          Tuan made changes -
          Comment [ |[ Great post. But it seems to me that the last comment resembles spam. I mean [wordlewebsite.com\|[https://wordlewebsite.com/]] and other ]| ]
          Mark Waite made changes -
          Comment [ Great plugin and I will try it now to see the results. [wordle|https://wordle-nyt.org/] ]

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

              Created:
              Updated:
              Resolved: