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