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 {