dims 01/09/04 08:14:25 Modified: src/org/apache/cocoon/components/language/programming/java Javac.java Log: Patch from Torsten Curdt <[EMAIL PROTECTED]> 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:[EMAIL PROTECTED]">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: [EMAIL PROTECTED] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]