From 401c6c98b54cddde38f0f50e8429eb7698a54fe8 Mon Sep 17 00:00:00 2001 From: Till Brychcy Date: Wed, 4 Oct 2017 10:40:23 +0200 Subject: [PATCH] Terminate StreamCopy threads in case of errors - fix NPE: don't invoke close() if no exception happened. Bug: 513554 Change-Id: I29f9b2ac1607ee26521e8aba334facd20e4ad79c Signed-off-by: Till Brychcy Signed-off-by: Matthias Sohn --- .../eclipse/jgit/transport/TransportGitSsh.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportGitSsh.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportGitSsh.java index ede5a7ae3..24bc058c4 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportGitSsh.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportGitSsh.java @@ -283,12 +283,12 @@ public class TransportGitSsh extends SshTransport implements PackTransport { init(process.getInputStream(), process.getOutputStream()); } catch (TransportException err) { + close(); throw err; } catch (Throwable err) { + close(); throw new TransportException(uri, JGitText.get().remoteHungUpUnexpectedly, err); - } finally { - close(); } try { @@ -341,12 +341,20 @@ public class TransportGitSsh extends SshTransport implements PackTransport { init(process.getInputStream(), process.getOutputStream()); } catch (TransportException err) { + try { + close(); + } catch (Exception e) { + // ignore + } throw err; } catch (Throwable err) { + try { + close(); + } catch (Exception e) { + // ignore + } throw new TransportException(uri, JGitText.get().remoteHungUpUnexpectedly, err); - } finally { - close(); } try {