]> source.dussan.org Git - aspectj.git/commitdiff
refactoring AbortException to make it clearer when we
authorehilsdal <ehilsdal>
Mon, 16 Dec 2002 22:41:15 +0000 (22:41 +0000)
committerehilsdal <ehilsdal>
Mon, 16 Dec 2002 22:41:15 +0000 (22:41 +0000)
want to abort w/o message, and to always stuff in a stack trace

bridge/src/org/aspectj/bridge/AbortException.java
bridge/testsrc/org/aspectj/bridge/MessageTest.java
org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/AjdtCommand.java
org.aspectj.ajdt.core/src/org/aspectj/tools/ajc/Main.java

index 241b6a8d9255e49cb8e0610cc19321e6c6be50f9..13c63a03087ca232c3d53ba141301139418d270b 100644 (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;
+       }
+
 }
index 6f370eeb37a7060675a03b22b05ca33b1a30bbe1..61488c8ef16d882a1e8c3beb262749bfed5db357 100644 (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);
 
index 1cecb4a7685b883ce60ef17601d9a7ec685865eb..a6c8368fc2759be66f4c0ef61396972fb091a52d 100644 (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;
     }
index e698d2b40969edd9c8f69a09d0b1b59f65ecd3ff..4c8e684e85cf64e0f085c8be5a0cedd52478c36c 100644 (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();