]> source.dussan.org Git - aspectj.git/commitdiff
patch mentioned on the list for detecting errs in incremental command line
authorwisberg <wisberg>
Wed, 14 May 2003 04:29:18 +0000 (04:29 +0000)
committerwisberg <wisberg>
Wed, 14 May 2003 04:29:18 +0000 (04:29 +0000)
org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/AjdtCommand.java
org.aspectj.ajdt.core/src/org/aspectj/tools/ajc/Main.java

index 10d3279c4c1689621f672d23158945f9047d430e..d1444a4e08eb05cb8c88650f3bd2566e6cdadafb 100644 (file)
@@ -121,12 +121,29 @@ public class AjdtCommand implements ICommand {
         return false;
     }
 
-    /** @throws AbortException on error after handling message */
+    /** 
+     * This creates a build configuration for the arguments.
+     * Errors reported to the handler:
+     * <ol>
+     *   <li>The parser detects some directly</li>
+     *   <li>The parser grabs some from the error stream
+     *       emitted by its superclass</li>
+     *   <li>The configuration has a self-test</li>
+     * </ol>
+     * In the latter two cases, the errors do not have
+     * a source location context for locating the error.
+     */
     public static AjBuildConfig genBuildConfig(String[] args, CountingMessageHandler handler) {
         BuildArgParser parser = new BuildArgParser();
         AjBuildConfig config = parser.genBuildConfig(args, handler);
         String message = parser.getOtherMessages(true);
 
+        if (null != message) {
+            IMessage.Kind kind = inferKind(message);
+            IMessage m = new Message(message, kind, null, null);            
+            handler.handleMessage(m);
+        }
+        message = config.configErrors();
         if (null != message) {
             IMessage.Kind kind = inferKind(message);
             IMessage m = new Message(message, kind, null, null);            
index 01acc2966995819be3e55a9ddb1140c94cf40c80..9a9ac69d6a53a606e468fb94fa3c29190693a77c 100644 (file)
@@ -502,9 +502,10 @@ public class Main {
          */
         public String[] init(String[] args, IMessageHandler sink) {
             running = true;
+            String[] unused;
             if (!LangUtil.isEmpty(args)) {
                 String[][] options = LangUtil.copyStrings(OPTIONS);
-                args = LangUtil.extractOptions(args, options);
+                unused = LangUtil.extractOptions(args, options);
                 incremental = (null != options[0][0]);
                 if (null != options[1][0]) {
                     File file = new File(options[1][1]);