From 3da9f7d33ad60e2130e411910b4244d311454295 Mon Sep 17 00:00:00 2001 From: felipeal Date: Thu, 2 Sep 2004 03:37:21 +0000 Subject: [PATCH] first fix for MPJAVADOC-42: instead of failing due to an exception, a WARNING message is logged to the console git-svn-id: https://svn.apache.org/repos/asf/maven/maven-1/plugins/trunk@116024 13f79535-47bb-0310-9956-ffa450edef68 --- .../javadoc/JavadocWarningsTextToXml.java | 112 ++++++++++-------- 1 file changed, 62 insertions(+), 50 deletions(-) diff --git a/javadoc/src/main/org/apache/maven/javadoc/JavadocWarningsTextToXml.java b/javadoc/src/main/org/apache/maven/javadoc/JavadocWarningsTextToXml.java index 3894e423..5e8d355b 100644 --- a/javadoc/src/main/org/apache/maven/javadoc/JavadocWarningsTextToXml.java +++ b/javadoc/src/main/org/apache/maven/javadoc/JavadocWarningsTextToXml.java @@ -43,7 +43,7 @@ import java.util.TreeMap; * Converts the javadoc warnings into an xml (xdoc format) file. * * @author Steven Caswell (stevencaswell at apache.org) - * @version $Id: JavadocWarningsTextToXml.java,v 1.1 2004/08/21 18:42:04 aheritier Exp $ + * @version $Id: JavadocWarningsTextToXml.java,v 1.2 2004/09/02 03:37:21 felipeal Exp $ */ public class JavadocWarningsTextToXml { //~ Static fields/initializers ---------------------------------------------- @@ -230,60 +230,72 @@ public class JavadocWarningsTextToXml { for (int i = 0; i < input.length; i++) { String line = input[i]; - - // Break up line into pieces - int javaDocStart = line.indexOf("[javadoc]"); - int fileNameStart = javaDocStart += PADDING; - int warningStart = line.indexOf("warning - "); - int fileNameEnd = warningStart - 1; - String fileNameAndLineNumber = - line.substring( - fileNameStart, - fileNameEnd - ); - int lastColon = fileNameAndLineNumber.lastIndexOf(':'); - int nextToLastColon = - fileNameAndLineNumber.lastIndexOf( - ':', - lastColon - 1 - ); - String fileName = fileNameAndLineNumber.substring( - 0, - nextToLastColon - ); - String lineNumber = - fileNameAndLineNumber.substring( - nextToLastColon + 1, - lastColon - ); - int msgStart = warningStart + PADDING; - String msg = line.substring(msgStart); - - // Get the messages for the file - Map fileMessages = (Map) files.get(fileName); - - if (fileMessages == null) { - fileMessages = new TreeMap(); - files.put( - fileName, - fileMessages + if (this.isVerbose()) { + System.out.println( + "Parsing line " + line ); } + try { + // Break up line into pieces + int javaDocStart = line.indexOf("[javadoc]"); + int fileNameStart = javaDocStart += PADDING; + int warningStart = line.indexOf("warning - "); + int fileNameEnd = warningStart - 1; + String fileNameAndLineNumber = + line.substring( + fileNameStart, + fileNameEnd + ); + int lastColon = fileNameAndLineNumber.lastIndexOf(':'); + int nextToLastColon = + fileNameAndLineNumber.lastIndexOf( + ':', + lastColon - 1 + ); + String fileName = fileNameAndLineNumber.substring( + 0, + nextToLastColon + ); + String lineNumber = + fileNameAndLineNumber.substring( + nextToLastColon + 1, + lastColon + ); + int msgStart = warningStart + PADDING; + String msg = line.substring(msgStart); - // Get the messages for the line - Set lineMessages = (Set) fileMessages.get(new Integer(lineNumber)); + // Get the messages for the file + Map fileMessages = (Map) files.get(fileName); - if (lineMessages == null) { - lineMessages = new LinkedHashSet(); - fileMessages.put( - new Integer(lineNumber), - lineMessages - ); + if (fileMessages == null) { + fileMessages = new TreeMap(); + files.put( + fileName, + fileMessages + ); + } + + // Get the messages for the line + Set lineMessages = (Set) fileMessages.get(new Integer(lineNumber)); + + if (lineMessages == null) { + lineMessages = new LinkedHashSet(); + fileMessages.put( + new Integer(lineNumber), + lineMessages + ); + } + + // Put the message into the line messages set + lineMessages.add(msg); + } catch( Throwable t ) { + System.err.println("*** WARNING: exception parsing line '" + line + + "': " + t.getMessage() ); + if (this.isVerbose()) { + t.printStackTrace(); + } } - - // Put the message into the line messages set - lineMessages.add(msg); - } + } // for return files; }