From: Shawn O. Pearce Date: Thu, 10 Jul 2008 06:13:22 GMT Subject: [JGIT PATCH 4/5] Report remote SSH execution errors during push via TransportException 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/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