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

[git-client] NoClassDefFoundException: ...GitClient when trying to paste a repository URL

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • git-client-plugin
    • None

      I want to configure a build job with git connectivity. As soon as I enter anything into the "Repository URL" field and leave the focus, the above mentioned exception pops up (see full stack trace below).

      What I tried so far:

      • switched between openjdk and oracle jdk (the stack trace is from the latter)
      • downgraded to older versions of the plugin (with no success down to 1.4.5)
      • checked the contents of the git-client.hpi / extracted plugin, which has the file that the class loader moans about

      (Side note: while I could find GitClient.class in plugins/git-client/WEB-INF/lib/classes.jar, I could not find org.kohsuke.stapler.* there or in the other jars of the plugin, is this packaged somewhere else?)

      Is there any workaround / anything I could try to remedy this problem? Jenkins without even basic git support is a major blocker for us...

      Many thanks!
      Thomas.

      Git version: 1.7.9.5
      Plugin version: 1.6.2
      Jenkins version: 1.549 (running standalone in Jetty)

      $ uname -a
      Linux Odin 3.8.0-35-generic #52~precise1-Ubuntu SMP Thu Jan 30 17:24:40 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

      $ java -version
      java version "1.7.0_51"
      Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
      Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)

      Full Stacktrace:

      javax.servlet.ServletException: java.lang.NoClassDefFoundError: org.jenkinsci.plugins.gitclient.GitClient
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:778)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)
      	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:728)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)
      	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:728)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:631)
      	at org.kohsuke.stapler.Stapler.service(Stapler.java:225)
      	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.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
      	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      	at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
      	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      	at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
      	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      	at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
      	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      	at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
      	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      	at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:174)
      	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      	at jenkins.security.ApiTokenFilter.doFilter(ApiTokenFilter.java:64)
      	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      	at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
      	at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
      	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      	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.headerComplete(AbstractHttpConnection.java:949)
      	at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1011)
      	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)
      	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:744)
      Caused by: java.lang.NoClassDefFoundError: org.jenkinsci.plugins.gitclient.GitClient
      	at org.jenkinsci.plugins.gitclient.Git$1.invoke(Git.java:63)
      	at org.jenkinsci.plugins.gitclient.Git$1.invoke(Git.java:54)
      	at org.jenkinsci.plugins.gitclient.Git.getClient(Git.java:66)
      	at hudson.plugins.git.UserRemoteConfig$DescriptorImpl.doCheckUrl(UserRemoteConfig.java:147)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:606)
      	at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:298)
      	at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:161)
      	at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:96)
      	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:728)
      	... 67 more
      

          [JENKINS-21745] [git-client] NoClassDefFoundException: ...GitClient when trying to paste a repository URL

          Thomas Keller added a comment -

          I think this issue is related to JENKINS-19927: I cloned the git-client repository, went to org.jenkinsci.plugins.gitclient.GitClient and commented out the unused CREDENTIALS_MATCHER member of the interface. After rebuilding via mvn clean install I installed the hpi on Jenkins and now got

          java.lang.NoClassDefFoundError: com/cloudbees/plugins/credentials/common/StandardCredentials
          	at org.jenkinsci.plugins.gitclient.Git$1.invoke(Git.java:63)
          	at org.jenkinsci.plugins.gitclient.Git$1.invoke(Git.java:54)
          	at org.jenkinsci.plugins.gitclient.Git.getClient(Git.java:66)
          	at hudson.plugins.git.UserRemoteConfig$DescriptorImpl.doCheckUrl(UserRemoteConfig.java:147)
          	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
          	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
          	at java.lang.reflect.Method.invoke(Method.java:606)
          	at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:298)
          	at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:161)
          	at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:96)
          	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:728)
          	... 67 more
          Caused by: java.lang.ClassNotFoundException: com.cloudbees.plugins.credentials.common.StandardCredentials
          	at org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1365)
          	at org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1315)
          	at org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:1068)
          	at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
          	... 81 more
          

          I'll fumble with my local installation of the credentials plugin now like said in JENKINS-19927 to see if this fixes my issue.

          Thomas Keller added a comment - I think this issue is related to JENKINS-19927 : I cloned the git-client repository, went to org.jenkinsci.plugins.gitclient.GitClient and commented out the unused CREDENTIALS_MATCHER member of the interface. After rebuilding via mvn clean install I installed the hpi on Jenkins and now got java.lang.NoClassDefFoundError: com/cloudbees/plugins/credentials/common/StandardCredentials at org.jenkinsci.plugins.gitclient.Git$1.invoke(Git.java:63) at org.jenkinsci.plugins.gitclient.Git$1.invoke(Git.java:54) at org.jenkinsci.plugins.gitclient.Git.getClient(Git.java:66) at hudson.plugins.git.UserRemoteConfig$DescriptorImpl.doCheckUrl(UserRemoteConfig.java:147) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:298) at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:161) at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:96) 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:728) ... 67 more Caused by: java.lang.ClassNotFoundException: com.cloudbees.plugins.credentials.common.StandardCredentials at org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1365) at org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1315) at org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:1068) at java.lang. ClassLoader .loadClass( ClassLoader .java:358) ... 81 more I'll fumble with my local installation of the credentials plugin now like said in JENKINS-19927 to see if this fixes my issue.

          Mark Waite added a comment -

          Have you upgraded your credentials plugin to the current version?

          I just ran a fresh install of Jenkins 1.532.2 on two different machines with the latest versions of all the plugins (git-plugin 2.0.1, git-client-plugin 1.6.2, credentials plugin 1.10). I confirmed that it handles various credential and non-credential scenarios as expected.

          Mark Waite added a comment - Have you upgraded your credentials plugin to the current version? I just ran a fresh install of Jenkins 1.532.2 on two different machines with the latest versions of all the plugins (git-plugin 2.0.1, git-client-plugin 1.6.2, credentials plugin 1.10). I confirmed that it handles various credential and non-credential scenarios as expected.

          Thomas Keller added a comment -

          As I said, it was a configuration problem of mine, because I disabled the Credentials plugin. And since this plugin compile and runtime depends on the Credentials plugin even if no credentials are needed, this was the root cause.

          Thomas Keller added a comment - As I said, it was a configuration problem of mine, because I disabled the Credentials plugin. And since this plugin compile and runtime depends on the Credentials plugin even if no credentials are needed, this was the root cause.

          Mark Waite added a comment -

          Marking this issue as resolved, since the submitter noted that it was a configuration error, not a bug in the git-client plugin.

          Mark Waite added a comment - Marking this issue as resolved, since the submitter noted that it was a configuration error, not a bug in the git-client plugin.

            ndeloof Nicolas De Loof
            kellert Thomas Keller
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: