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 <register.eclipse@brychcy.de>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
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 ede5a7a..24bc058 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 @@
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 @@
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 {