[JGIT PATCH 4/5] Report remote SSH execution errors during push via TransportException
- From
Shawn O. Pearce <spearce@spearce.org>
- Date
- Jul 10, 2008, 06:13 UTC
- Message-ID
- <1215670403-19191-5-git-send-email-spearce@spearce.org>
- In-Reply-To
- <1215670403-19191-4-git-send-email-spearce@spearce.org>
If the remote side failed to execute git-receive-pack we may have the reason why on the stderr stream of the channel, as the remote shell may have failed execution.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org> --- .../spearce/jgit/transport/TransportGitSsh.java | 9 +++++++-- 1 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/org.spearce.jgit/src/org/spearce/jgit/transport/TransportGitSsh.java b/org.spearce.jgit/src/org/spearce/jgit/transport/TransportGitSsh.java index b169f4c..9a6c719 100644 --- a/org.spearce.jgit/src/org/spearce/jgit/transport/TransportGitSsh.java +++ b/org.spearce.jgit/src/org/spearce/jgit/transport/TransportGitSsh.java @@ -228,7 +228,7 @@ class TransportGitSsh extends PackTransport { if (channel.isConnected()) init(channel.getInputStream(), channel.getOutputStream()); else - throw new TransportException(errStream.toString()); + throw new TransportException(uri, errStream.toString()); } catch (TransportException err) { close(); @@ -263,7 +263,12 @@ class TransportGitSsh extends PackTransport { super(TransportGitSsh.this); try { channel = exec(getOptionReceivePack()); - init(channel.getInputStream(), channel.getOutputStream()); + + if (channel.isConnected()) + init(channel.getInputStream(), channel.getOutputStream()); + else + throw new TransportException(uri, errStream.toString()); + } catch (TransportException err) { close(); throw err;
-- 1.5.6.2.393.g45096