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

Details

    Description

      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

      Attachments

        Issue Links

          Activity

            markewaite Mark Waite created issue -
            markewaite Mark Waite made changes -
            Field Original Value New Value
            Description 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)
            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)
            markewaite Mark Waite made changes -
            Description 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)
            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
            markewaite Mark Waite made changes -
            Description 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
            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
            testuser7 Test User made changes -
            Link This issue is related to JENKINS-39598 [ JENKINS-39598 ]
            jglick Jesse Glick made changes -
            Resolution Duplicate [ 3 ]
            Status Open [ 1 ] Resolved [ 5 ]
            markewaite Mark Waite made changes -
            Status Resolved [ 5 ] Closed [ 6 ]

            People

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

              Dates

                Created:
                Updated:
                Resolved: