Browse Source

refactoring AbortException to make it clearer when we

want to abort w/o message, and to always stuff in a stack trace
tags/V_1_1_b2
ehilsdal 21 years ago
parent
commit
f50d1eeb89

+ 13
- 8
bridge/src/org/aspectj/bridge/AbortException.java View File

@@ -38,18 +38,13 @@ import java.util.ArrayList;
*/
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.
@@ -64,6 +59,7 @@ public class AbortException extends RuntimeException { // XXX move porters out,
result = (AbortException) porters.get(0);
} else {
result = new AbortException();
result.setIsSilent(false);
}
}
result.setIMessage(message);
@@ -106,7 +102,8 @@ public class AbortException extends RuntimeException { // XXX move porters out,

/** abort with default String message */
public AbortException() {
this((String) null);
this("ABORT");
isSilent = true;
}

/** abort with message */
@@ -222,4 +219,12 @@ public class AbortException extends RuntimeException { // XXX move porters out,
}
}

public boolean isSilent() {
return isSilent;
}
public void setIsSilent(boolean isSilent) {
this.isSilent = isSilent;
}

}

+ 1
- 1
bridge/testsrc/org/aspectj/bridge/MessageTest.java View File

@@ -146,7 +146,7 @@ public class MessageTest extends TestCase {

// -- throwable
kind = IMessage.FAIL;
thrown = AbortException.ABORT;
thrown = new AbortException();
input = null;
roundTrip(input, kind, thrown, sl, descriptor, exClass);


+ 2
- 2
org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/AjdtCommand.java View File

@@ -55,7 +55,7 @@ public class AjdtCommand implements ICommand {
&& 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);
@@ -107,7 +107,7 @@ public class AjdtCommand implements ICommand {
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;
}

+ 1
- 1
org.aspectj.ajdt.core/src/org/aspectj/tools/ajc/Main.java View File

@@ -183,7 +183,7 @@ public class Main {
}
}
} catch (AbortException ae) {
if (AbortException.ABORT.equals(ae)) {
if (ae.isSilent()) {
quit();
} else {
IMessage message = ae.getIMessage();

Loading…
Cancel
Save