Ensure we delete keys in case of errors
authorDmitry Neverov <dmitry.neverov@gmail.com>
Tue, 19 Dec 2017 15:17:27 +0000 (16:17 +0100)
committerDmitry Neverov <dmitry.neverov@gmail.com>
Tue, 19 Dec 2017 15:17:27 +0000 (16:17 +0100)
git-agent/src/jetbrains/buildServer/buildTriggers/vcs/git/agent/command/impl/SshHandler.java

index 2bf287e7d715fb10609ac8a00f8e663d5b527f58..33b1d38a99102c109eef603bbec62b4d383494ff 100644 (file)
@@ -87,6 +87,7 @@ public class SshHandler implements GitSSHService.Handler {
               String passphrase = myAuthSettings.getPassphrase();
               cmd.addEnvParam(GitSSHHandler.TEAMCITY_PASSPHRASE, passphrase != null ? passphrase : "");
             } catch (Exception e) {
+              deleteKeys();
               throw new VcsException(e);
             }
           }
@@ -103,6 +104,7 @@ public class SshHandler implements GitSSHService.Handler {
     try {
       cmd.addEnvParam(GitSSHHandler.GIT_SSH_ENV, ssh.getScriptPath());
     } catch (IOException e) {
+      deleteKeys();
       throw new VcsException("SSH script cannot be generated", e);
     }
     myHandlerNo = ssh.registerHandler(this);
@@ -113,10 +115,15 @@ public class SshHandler implements GitSSHService.Handler {
    * Unregister the handler
    */
   public void unregister() {
+    deleteKeys();
+    mySsh.unregisterHandler(myHandlerNo);
+  }
+
+
+  private void deleteKeys() {
     for (File f : myFilesToClean) {
       FileUtil.delete(f);
     }
-    mySsh.unregisterHandler(myHandlerNo);
   }
 
   public boolean verifyServerHostKey(String hostname,