You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by di...@apache.org on 2001/09/04 17:14:25 UTC

cvs commit: xml-cocoon2/src/org/apache/cocoon/components/language/programming/java Javac.java

dims        01/09/04 08:14:25

  Modified:    src/org/apache/cocoon/components/language/programming/java
                        Javac.java
  Log:
  Patch from Torsten Curdt <tc...@dff.st> for "error message from javac"
  
  Revision  Changes    Path
  1.6       +40 -30    xml-cocoon2/src/org/apache/cocoon/components/language/programming/java/Javac.java
  
  Index: Javac.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/components/language/programming/java/Javac.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- Javac.java	2001/08/20 13:55:11	1.5
  +++ Javac.java	2001/09/04 15:14:24	1.6
  @@ -19,13 +19,14 @@
   import java.io.IOException;
   import java.util.ArrayList;
   import java.util.List;
  +import java.util.NoSuchElementException;
   import java.util.StringTokenizer;
   
   /**
    * This class wraps the Sun's Javac Compiler.
    *
    * @author <a href="mailto:stefano@apache.org">Stefano Mazzocchi</a>
  - * @version $Revision: 1.5 $ $Date: 2001/08/20 13:55:11 $
  + * @version $Revision: 1.6 $ $Date: 2001/09/04 15:14:24 $
    * @since 2.0
    */
   
  @@ -127,18 +128,22 @@
      */
     private CompilerError parseModernError(String error) {
       StringTokenizer tokens = new StringTokenizer(error, ":");
  -    String file = tokens.nextToken();
  -    if (file.length() == 1) file += ":" + tokens.nextToken();
  -    int line = Integer.parseInt(tokens.nextToken());
  -
  -    String message = tokens.nextToken("\n").substring(1);
  -    String context = tokens.nextToken("\n");
  -    String pointer = tokens.nextToken("\n");
  -    int startcolumn = pointer.indexOf("^");
  -    int endcolumn = context.indexOf(" ", startcolumn);
  -    if (endcolumn == -1) endcolumn = context.length();
  -
  -    return new CompilerError(file, false, line, startcolumn, line, endcolumn, message);
  +    try {
  +      String file = tokens.nextToken();
  +      if (file.length() == 1) file += ":" + tokens.nextToken();
  +      int line = Integer.parseInt(tokens.nextToken());
  +
  +      String message = tokens.nextToken("\n").substring(1);
  +      String context = tokens.nextToken("\n");
  +      String pointer = tokens.nextToken("\n");
  +      int startcolumn = pointer.indexOf("^");
  +      int endcolumn = context.indexOf(" ", startcolumn);
  +      if (endcolumn == -1) endcolumn = context.length();
  +      return new CompilerError(file, false, line, startcolumn, line, endcolumn, message);
  +    }
  +    catch(NoSuchElementException nse) {
  +      return new CompilerError("could not parse error message: " + error);
  +    }
     }
   
     /**
  @@ -183,24 +188,29 @@
     private CompilerError parseClassicError(String error) {
   
       StringTokenizer tokens = new StringTokenizer(error, ":");
  -    String file = tokens.nextToken();
  -    if (file.length() == 1) file += ":" + tokens.nextToken();
  -    int line = Integer.parseInt(tokens.nextToken());
  -
  -    String last = tokens.nextToken();
  -    // In case the message contains ':', it should be reassembled
  -    while (tokens.hasMoreElements()) {
  -      last += tokens.nextToken();
  -    }
  -    tokens = new StringTokenizer(last.trim(), "\n");
  -    String message = tokens.nextToken();
  -    String context = tokens.nextToken();
  -    String pointer = tokens.nextToken();
  -    int startcolumn = pointer.indexOf("^");
  -    int endcolumn = context.indexOf(" ", startcolumn);
  -    if (endcolumn == -1) endcolumn = context.length();
  +    try {
  +      String file = tokens.nextToken();
  +      if (file.length() == 1) file += ":" + tokens.nextToken();
  +      int line = Integer.parseInt(tokens.nextToken());
  +
  +      String last = tokens.nextToken();
  +      // In case the message contains ':', it should be reassembled
  +      while (tokens.hasMoreElements()) {
  +        last += tokens.nextToken();
  +      }
  +      tokens = new StringTokenizer(last.trim(), "\n");
  +      String message = tokens.nextToken();
  +      String context = tokens.nextToken();
  +      String pointer = tokens.nextToken();
  +      int startcolumn = pointer.indexOf("^");
  +      int endcolumn = context.indexOf(" ", startcolumn);
  +      if (endcolumn == -1) endcolumn = context.length();
   
  -    return new CompilerError(srcDir + File.separator + file, true, line, startcolumn, line, endcolumn, message);
  +      return new CompilerError(srcDir + File.separator + file, true, line, startcolumn, line, endcolumn, message);
  +    }
  +    catch(NoSuchElementException nse) {
  +      return new CompilerError("could not parse error message: " + error);
  +    }
     }
   
     public String toString() {
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     webmaster@xml.apache.org
To unsubscribe, e-mail:          cocoon-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: cocoon-cvs-help@xml.apache.org