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

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

    XMLWordPrintable

    Details

    • Similar Issues:

      Description

      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
      

        Attachments

          Issue Links

            Activity

            Hide
            kellert 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.

            Show
            kellert 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.
            Hide
            markewaite 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.

            Show
            markewaite 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.
            Hide
            kellert 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.

            Show
            kellert 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.
            Hide
            markewaite 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.

            Show
            markewaite 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.

              People

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

                Dates

                • Created:
                  Updated:
                  Resolved: