pgm: Handle IOException in ShowRef command

This avoids we show a stacktrace on the console by default when this
type of exception is thrown during the run method is executed.

Change-Id: If18a5d8013f1cb393af3a5e5a1ec9613ac2151bd
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
This commit is contained in:
Matthias Sohn 2019-01-21 23:44:20 +01:00
parent 390fe5b878
commit 5ca4075c45
1 changed files with 10 additions and 6 deletions

View File

@ -56,15 +56,19 @@
class ShowRef extends TextBuiltin {
/** {@inheritDoc} */
@Override
protected void run() throws Exception {
for (Ref r : getSortedRefs()) {
show(r.getObjectId(), r.getName());
if (r.getPeeledObjectId() != null)
show(r.getPeeledObjectId(), r.getName() + "^{}"); //$NON-NLS-1$
protected void run() {
try {
for (Ref r : getSortedRefs()) {
show(r.getObjectId(), r.getName());
if (r.getPeeledObjectId() != null)
show(r.getPeeledObjectId(), r.getName() + "^{}"); //$NON-NLS-1$
}
} catch (IOException e) {
throw die(e.getMessage(), e);
}
}
private Iterable<Ref> getSortedRefs() throws Exception {
private Iterable<Ref> getSortedRefs() throws IOException {
List<Ref> all = db.getRefDatabase().getRefs();
// TODO(jrn) check if we can reintroduce fast-path by e.g. implementing
// SortedList