X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=base%2Fruntime%2Forg.argeo.util%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2FArgeoException.java;h=03ac4958e125598e17e1f023b522963e2c4c9abb;hb=00474cf92c05359177aba1768bd2ef95a310afaf;hp=343b6c947fad8d05d42410650ca75af0dea67587;hpb=5e65b1c0f228622aebfe03b23706cb6a02a5a96a;p=lgpl%2Fargeo-commons.git diff --git a/base/runtime/org.argeo.util/src/main/java/org/argeo/ArgeoException.java b/base/runtime/org.argeo.util/src/main/java/org/argeo/ArgeoException.java index 343b6c947..03ac4958e 100644 --- a/base/runtime/org.argeo.util/src/main/java/org/argeo/ArgeoException.java +++ b/base/runtime/org.argeo.util/src/main/java/org/argeo/ArgeoException.java @@ -29,10 +29,21 @@ public class ArgeoException extends RuntimeException { super(message, e); } - /** @deprecated use {@link #ArgeoException(String, Throwable)} instead. */ - @Deprecated - public ArgeoException(Throwable cause) { - super(cause); + /** + * Chain the messages of all causes (one per line, starts with a line + * return) without all the stack + */ + public static String chainCausesMessages(Throwable t) { + StringBuffer buf = new StringBuffer(); + chainCauseMessage(buf, t); + return buf.toString(); } + /** Recursive chaining of messages */ + private static void chainCauseMessage(StringBuffer buf, Throwable t) { + buf.append('\n').append(' ').append(t.getClass().getCanonicalName()) + .append(": ").append(t.getMessage()); + if (t.getCause() != null) + chainCauseMessage(buf, t.getCause()); + } }