*/
public class AbortException extends RuntimeException { // XXX move porters out, handle proxy better
+ private boolean isSilent = false;
+
/** used when message text is null */
public static final String NO_MESSAGE_TEXT
= "AbortException (no message)";
private static final ArrayList porters = new ArrayList();
-
- /**
- * A client may throw this rather than constructing their own
- * if stack trace or message is not needed when caught.
- */
- public static final AbortException ABORT
- = new AbortException("ABORT");
/**
* Get a porter exception from the pool.
result = (AbortException) porters.get(0);
} else {
result = new AbortException();
+ result.setIsSilent(false);
}
}
result.setIMessage(message);
/** abort with default String message */
public AbortException() {
- this((String) null);
+ this("ABORT");
+ isSilent = true;
}
/** abort with message */
}
}
+ public boolean isSilent() {
+ return isSilent;
+ }
+
+ public void setIsSilent(boolean isSilent) {
+ this.isSilent = isSilent;
+ }
+
}
// -- throwable
kind = IMessage.FAIL;
- thrown = AbortException.ABORT;
+ thrown = new AbortException();
input = null;
roundTrip(input, kind, thrown, sl, descriptor, exClass);
&& buildManager.batchBuild(config, counter)
&& !counter.hasErrors());
} catch (AbortException ae) {
- if (AbortException.ABORT.equals(ae)) {
+ if (ae.isSilent()) {
throw ae;
} else {
MessageUtil.abort(handler, ABORT_MESSAGE, ae);
if (null != message) {
IMessage.Kind kind = inferKind(message);
handler.handleMessage(new Message(message, kind, null, null));
- throw AbortException.ABORT; // XXX tangled - assumes handler prints?
+ throw new AbortException(); // XXX tangled - assumes handler prints?
}
return config;
}