diff options
author | Andrey Loskutov <loskutov@gmx.de> | 2015-12-28 18:13:35 +0100 |
---|---|---|
committer | Andrey Loskutov <loskutov@gmx.de> | 2015-12-29 02:33:23 +0100 |
commit | 4b7839cafd3561bbeca6ed6dabce3d9039ab8288 (patch) | |
tree | 2b054148a384b3412fefbc8ed6b816305d3faaf1 /org.eclipse.jgit.pgm | |
parent | 241b50be319e29cfae2ab1a5fcec94e7931074f8 (diff) | |
download | jgit-4b7839cafd3561bbeca6ed6dabce3d9039ab8288.tar.gz jgit-4b7839cafd3561bbeca6ed6dabce3d9039ab8288.zip |
Provide a root cause for aborted commands
Change-Id: Iafaa03dbacbe7f1b2b074d3294db988b08fdb0d7
Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
Diffstat (limited to 'org.eclipse.jgit.pgm')
-rw-r--r-- | org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Die.java | 15 | ||||
-rw-r--r-- | org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/TextBuiltin.java | 15 |
2 files changed, 29 insertions, 1 deletions
diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Die.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Die.java index f07df1a4b5..a25f1e9305 100644 --- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Die.java +++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Die.java @@ -86,6 +86,21 @@ public class Die extends RuntimeException { * @since 3.4 */ public Die(boolean aborted) { + this(aborted, null); + } + + /** + * Construct a new exception reflecting the fact that the command execution + * has been aborted before running. + * + * @param aborted + * boolean indicating the fact the execution has been aborted + * @param cause + * can be null + * @since 4.2 + */ + public Die(boolean aborted, final Throwable cause) { + super(cause != null ? cause.getMessage() : null, cause); this.aborted = aborted; } diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/TextBuiltin.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/TextBuiltin.java index 56cfc7e8ef..40a42e5207 100644 --- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/TextBuiltin.java +++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/TextBuiltin.java @@ -217,7 +217,7 @@ public abstract class TextBuiltin { } catch (CmdLineException err) { if (!help) { this.errw.println(MessageFormat.format(CLIText.get().fatalError, err.getMessage())); - throw die(true); + throw die(true, err); } } @@ -324,6 +324,19 @@ public abstract class TextBuiltin { return new Die(aborted); } + /** + * @param aborted + * boolean indicating that the execution has been aborted before + * running + * @param cause + * why the command has failed. + * @return a runtime exception the caller is expected to throw + * @since 4.2 + */ + protected static Die die(boolean aborted, final Throwable cause) { + return new Die(aborted, cause); + } + String abbreviateRef(String dst, boolean abbreviateRemote) { if (dst.startsWith(R_HEADS)) dst = dst.substring(R_HEADS.length()); |