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

Github plugin failure - NullPointerException when attempting do save job

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • github-plugin
    • Jenkins 1.536
      GitHub plugin 1.8

      Following stack trace is shown when attempting to save job if GitHub project field is empty.

      Stack trace

      javax.servlet.ServletException: java.lang.NullPointerException
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:777)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:841)
      at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:248)
      at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:727)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:841)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:630)
      at org.kohsuke.stapler.Stapler.service(Stapler.java:224)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
      at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:686)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1494)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:96)
      at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:88)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
      at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
      at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
      at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
      at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:46)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
      at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1474)
      at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)
      at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
      at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:533)
      at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
      at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
      at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
      at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
      at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
      at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
      at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
      at org.eclipse.jetty.server.Server.handle(Server.java:370)
      at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
      at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:960)
      at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1021)
      at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)
      at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
      at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
      at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)
      at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
      at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      at java.lang.Thread.run(Thread.java:722)
      Caused by: java.lang.NullPointerException
      at com.coravy.hudson.plugins.github.GithubProjectProperty.access$000(GithubProjectProperty.java:24)
      at com.coravy.hudson.plugins.github.GithubProjectProperty$DescriptorImpl.newInstance(GithubProjectProperty.java:80)
      at com.coravy.hudson.plugins.github.GithubProjectProperty$DescriptorImpl.newInstance(GithubProjectProperty.java:59)
      at hudson.util.DescribableList.rebuild(DescribableList.java:173)
      at hudson.model.Job.doConfigSubmit(Job.java:1129)
      at hudson.model.AbstractProject.doConfigSubmit(AbstractProject.java:787)
      at sun.reflect.GeneratedMethodAccessor725.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:601)
      at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:297)
      at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:160)
      at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:95)
      at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:120)
      at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:727)
      ... 46 more

          [JENKINS-20201] Github plugin failure - NullPointerException when attempting do save job

          Mike Caspar added a comment -

          Oh.. adding the correct value in the GitHub project field does seem to fix it under this config..

          I don't know if there will be any ill-effects, but a work-around in my case was to just put the word "junk" in there to not get an exception.

          It at least lets me save and allows manual starting of jobs (I haven't checked for other problems caused by this).

          Should at least let you manage your server for now.

          Mike Caspar added a comment - Oh.. adding the correct value in the GitHub project field does seem to fix it under this config.. I don't know if there will be any ill-effects, but a work-around in my case was to just put the word "junk" in there to not get an exception. It at least lets me save and allows manual starting of jobs (I haven't checked for other problems caused by this). Should at least let you manage your server for now.

          Hi,

          I submitted a PR too, I had patched it for our install yesterday but didn't notice @sogabe's PR. I noticed that he has closed that so I submitted mine;

          https://github.com/jenkinsci/github-plugin/pull/34

          I wrapped the original code in a try/catch to allow for two cases; that the GithubProjectProperty couldn't be bound or that it could be bound but the tcc.projectUrl was still null, which I think was closer to the original intention of the method. I've also added in some logging too.

          Graham O'Regan added a comment - Hi, I submitted a PR too, I had patched it for our install yesterday but didn't notice @sogabe's PR. I noticed that he has closed that so I submitted mine; https://github.com/jenkinsci/github-plugin/pull/34 I wrapped the original code in a try/catch to allow for two cases; that the GithubProjectProperty couldn't be bound or that it could be bound but the tcc.projectUrl was still null, which I think was closer to the original intention of the method. I've also added in some logging too.

          santhosh Reddy added a comment - - edited

          I have upgraded jenkins today and i can not edit an existing job, or create a new job, i am stuck with this.

          Please let me know if there is any workaround for this issue.

          How can i downgrade the updated jenkins?

          santhosh Reddy added a comment - - edited I have upgraded jenkins today and i can not edit an existing job, or create a new job, i am stuck with this. Please let me know if there is any workaround for this issue. How can i downgrade the updated jenkins?

          depends on how you upgraded it in the first place. it might be quicker to build the Github plugin from one of the PRs which will get you going quickly.

          Graham O'Regan added a comment - depends on how you upgraded it in the first place. it might be quicker to build the Github plugin from one of the PRs which will get you going quickly.

          I have installed jenkins as native package on Red Hat. And i got a system update today morning that jenkins update is available and i have updated it.

          I am new to this stuff and i am not sure of how to build the Github plugin, can you please explain it more elaborately.

          Thanks.

          santhosh Reddy added a comment - I have installed jenkins as native package on Red Hat. And i got a system update today morning that jenkins update is available and i have updated it. I am new to this stuff and i am not sure of how to build the Github plugin, can you please explain it more elaborately. Thanks.

          ah, i think most people here have had the same issue

          if you follow these steps for now;

          • git clone git@github.com:grahamoregan/github-plugin.git
          • mvn package
          • scp target/github.hpi user@server:/var/lib/jenkins/plugins/github.jpi

          restart jenkins to pick up the change.

          make sure you haven't pinned the version of github.jpi because you'll want to get the update when the issue is resolved.

          Graham O'Regan added a comment - ah, i think most people here have had the same issue if you follow these steps for now; git clone git@github.com:grahamoregan/github-plugin.git mvn package scp target/github.hpi user@server:/var/lib/jenkins/plugins/github.jpi restart jenkins to pick up the change. make sure you haven't pinned the version of github.jpi because you'll want to get the update when the issue is resolved.

          Thanks a lot for your reply.

          It may sound like a silly issue, but i am completely new to git, i have tried to clone using the first step, but following error is thrown, any pointers to get pass through :

          $ git clone git@github.com:grahamoregan/github-plugin.git
          Cloning into 'github-plugin'...
          Permission denied (publickey).
          fatal: Could not read from remote repository.

          Please make sure you have the correct access rights
          and the repository exists.

          santhosh Reddy added a comment - Thanks a lot for your reply. It may sound like a silly issue, but i am completely new to git, i have tried to clone using the first step, but following error is thrown, any pointers to get pass through : $ git clone git@github.com:grahamoregan/github-plugin.git Cloning into 'github-plugin'... Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.

          you need to add your public ssh key to github, alternatively, you could try cloning using HTTPS instead (i think that'll work);

          git clone git@github.com:grahamoregan/github-plugin.git

          Graham O'Regan added a comment - you need to add your public ssh key to github, alternatively, you could try cloning using HTTPS instead (i think that'll work); git clone git@github.com:grahamoregan/github-plugin.git

          Thanks a lot Graham , it worked.

          santhosh Reddy added a comment - Thanks a lot Graham , it worked.

          Code changed in jenkins
          User: Kohsuke Kawaguchi
          Path:
          src/main/java/com/coravy/hudson/plugins/github/GithubProjectProperty.java
          http://jenkins-ci.org/commit/github-plugin/e46663b69e2e7ca53fd5d6da3e990ceb31776430
          Log:
          [FIXED JENKINS-20201]

          I'm actually unclear why bindJSON can return null at all.
          But I'm not going to let that mystery block users.

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Kohsuke Kawaguchi Path: src/main/java/com/coravy/hudson/plugins/github/GithubProjectProperty.java http://jenkins-ci.org/commit/github-plugin/e46663b69e2e7ca53fd5d6da3e990ceb31776430 Log: [FIXED JENKINS-20201] I'm actually unclear why bindJSON can return null at all. But I'm not going to let that mystery block users.

            Unassigned Unassigned
            kkarolk karol kujawiak
            Votes:
            8 Vote for this issue
            Watchers:
            19 Start watching this issue

              Created:
              Updated:
              Resolved: