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

`java.lang.ClassNotFoundException: org.kohsuke.putty.PuTTYKey` on scm step

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Minor
    • Resolution: Fixed
    • Labels:
      None
    • Environment:
    • Similar Issues:
    • Released As:
      Git client plugin 3.3.0 released June 19, 2020

      Description

      If the trilead-api plugin is not installed on a Jenkins 2.190.1 server, results in the following stacktrace

      java.lang.ClassNotFoundException: org.kohsuke.putty.PuTTYKey
              at jenkins.util.AntClassLoader.findClassInComponents(AntClassLoader.java:1383)
              at jenkins.util.AntClassLoader.findClass(AntClassLoader.java:1336)
              at jenkins.util.AntClassLoader.loadClass(AntClassLoader.java:1083)
              at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
      Caused: java.lang.NoClassDefFoundError: org/kohsuke/putty/PuTTYKey
              at com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey.getPrivateKeys(BasicSSHUserPrivateKey.java:174)
              at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.createSshKeyFile(CliGitAPIImpl.java:1878)
              at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1793)
              at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$500(CliGitAPIImpl.java:78)
              at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:545)
              at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$2.execute(CliGitAPIImpl.java:758)
              at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1152)
              at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1192)
              at org.jenkinsci.plugins.workflow.steps.scm.SCMStep.checkout(SCMStep.java:124)
              at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:93)
              at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:80)
              at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
              at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
              at java.util.concurrent.FutureTask.run(FutureTask.java:266)
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
              at java.util.concurrent.ThreadPoolExecutor 

      Workaround is to install the trilead-api plugin. The plugin was unbundled from Jenkins core in Jenkins 2.190.1 and is needed by those plugins (git client, ssh-slaves, etc.) that previously used the version that was bundled with Jenkins core.

        Attachments

          Activity

          dicomj23 Dicom J created issue -
          ifernandezcalvo Ivan Fernandez Calvo made changes -
          Field Original Value New Value
          Component/s git-client-plugin [ 17423 ]
          markewaite Mark Waite made changes -
          Description results in the following stacktrace
          {code:java}
          java.lang.ClassNotFoundException: org.kohsuke.putty.PuTTYKey
                  at jenkins.util.AntClassLoader.findClassInComponents(AntClassLoader.java:1383)
                  at jenkins.util.AntClassLoader.findClass(AntClassLoader.java:1336)
                  at jenkins.util.AntClassLoader.loadClass(AntClassLoader.java:1083)
                  at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
          Caused: java.lang.NoClassDefFoundError: org/kohsuke/putty/PuTTYKey
                  at com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey.getPrivateKeys(BasicSSHUserPrivateKey.java:174)
                  at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.createSshKeyFile(CliGitAPIImpl.java:1878)
                  at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1793)
                  at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$500(CliGitAPIImpl.java:78)
                  at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:545)
                  at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$2.execute(CliGitAPIImpl.java:758)
                  at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1152)
                  at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1192)
                  at org.jenkinsci.plugins.workflow.steps.scm.SCMStep.checkout(SCMStep.java:124)
                  at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:93)
                  at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:80)
                  at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
                  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
                  at java.util.concurrent.FutureTask.run(FutureTask.java:266)
                  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
                  at java.util.concurrent.ThreadPoolExecutor {code}
          If the trilead-api plugin is not installed on a Jenkins 2.190.1 server, results in the following stacktrace
          {code:java}
          java.lang.ClassNotFoundException: org.kohsuke.putty.PuTTYKey
                  at jenkins.util.AntClassLoader.findClassInComponents(AntClassLoader.java:1383)
                  at jenkins.util.AntClassLoader.findClass(AntClassLoader.java:1336)
                  at jenkins.util.AntClassLoader.loadClass(AntClassLoader.java:1083)
                  at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
          Caused: java.lang.NoClassDefFoundError: org/kohsuke/putty/PuTTYKey
                  at com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey.getPrivateKeys(BasicSSHUserPrivateKey.java:174)
                  at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.createSshKeyFile(CliGitAPIImpl.java:1878)
                  at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1793)
                  at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$500(CliGitAPIImpl.java:78)
                  at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:545)
                  at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$2.execute(CliGitAPIImpl.java:758)
                  at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1152)
                  at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1192)
                  at org.jenkinsci.plugins.workflow.steps.scm.SCMStep.checkout(SCMStep.java:124)
                  at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:93)
                  at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:80)
                  at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
                  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
                  at java.util.concurrent.FutureTask.run(FutureTask.java:266)
                  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
                  at java.util.concurrent.ThreadPoolExecutor {code}

          Workaround is to install the trilead-api plugin. The plugin was unbundled from Jenkins core in Jenkins 2.190.1 and is needed by those plugins (git client, ssh-slaves, etc.) that previously used the version that was bundled with Jenkins core.
          markewaite Mark Waite made changes -
          Status Open [ 1 ] In Progress [ 3 ]
          markewaite Mark Waite made changes -
          Assignee Ivan Fernandez Calvo [ ifernandezcalvo ] Mark Waite [ markewaite ]
          markewaite Mark Waite made changes -
          Released As Git client plugin 3.3.0 released June 19, 2020
          Resolution Fixed [ 1 ]
          Status In Progress [ 3 ] Closed [ 6 ]

            People

            Assignee:
            markewaite Mark Waite
            Reporter:
            dicomj23 Dicom J
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: