Browse Source

Close copy threads in case of errors

Bug: 484775
Change-Id: I3c7105188e615b6b994261f4ece0c8abc98eb444
Signed-off-by: Dmitry Neverov <dmitry.neverov@gmail.com>
stable-4.3
Dmitry Neverov 9 years ago committed by Matthias Sohn
parent
commit
9c71bf14b7
  1. 15
      org.eclipse.jgit/src/org/eclipse/jgit/transport/JschSession.java

15
org.eclipse.jgit/src/org/eclipse/jgit/transport/JschSession.java

@ -149,14 +149,27 @@ public class JschSession implements RemoteSession {
channel.setCommand(commandName); channel.setCommand(commandName);
setupStreams(); setupStreams();
channel.connect(timeout > 0 ? timeout * 1000 : 0); channel.connect(timeout > 0 ? timeout * 1000 : 0);
if (!channel.isConnected()) if (!channel.isConnected()) {
closeOutputStream();
throw new TransportException(uri, throw new TransportException(uri,
JGitText.get().connectionFailed); JGitText.get().connectionFailed);
}
} catch (JSchException e) { } catch (JSchException e) {
closeOutputStream();
throw new TransportException(uri, e.getMessage(), e); throw new TransportException(uri, e.getMessage(), e);
} }
} }
private void closeOutputStream() {
if (outputStream != null) {
try {
outputStream.close();
} catch (IOException ioe) {
// ignore
}
}
}
private void setupStreams() throws IOException { private void setupStreams() throws IOException {
inputStream = channel.getInputStream(); inputStream = channel.getInputStream();

Loading…
Cancel
Save