Skip to content
This repository has been archived by the owner on Apr 6, 2022. It is now read-only.

Commit

Permalink
Browse files Browse the repository at this point in the history
[FIXED JENKINS-32298] Update of regexp for JavaDoc 1.8 warnings.
  • Loading branch information
uhafner committed May 23, 2016
1 parent 762294a commit 5d40b25
Show file tree
Hide file tree
Showing 4 changed files with 94 additions and 6 deletions.
15 changes: 12 additions & 3 deletions src/main/java/hudson/plugins/warnings/parser/JavaDocParser.java
Expand Up @@ -5,6 +5,7 @@
import org.apache.commons.lang.StringUtils;

import hudson.Extension;
import hudson.plugins.analysis.util.model.Priority;

/**
* A parser for the ant JavaDoc compiler warnings.
Expand All @@ -14,7 +15,7 @@
@Extension
public class JavaDocParser extends RegexpLineParser {
private static final long serialVersionUID = 7127568148333474921L;
private static final String JAVA_DOC_WARNING_PATTERN = "(?:\\s*\\[(?:javadoc|WARNING)\\]\\s*)?(?:(?:(.*):(\\d+))|(?:\\s*javadoc\\s*)):\\s*warning\\s*-\\s*(.*)";
private static final String JAVA_DOC_WARNING_PATTERN = "(?:\\s*\\[(?:javadoc|WARNING)\\]\\s*)?(?:(?:(.*):(\\d+))|(?:\\s*javadoc\\s*)):\\s*(warning|error)\\s*[-:]\\s*(.*)";

/**
* Creates a new instance of {@link JavaDocParser}.
Expand All @@ -33,10 +34,18 @@ protected String getId() {

@Override
protected Warning createWarning(final Matcher matcher) {
String message = matcher.group(3);
String message = matcher.group(4);
String type = matcher.group(3);
Priority priority;
if ("warning".equals(type)) {
priority = Priority.NORMAL;
}
else {
priority = Priority.HIGH;
}
String fileName = StringUtils.defaultIfEmpty(matcher.group(1), " - ");

return createWarning(fileName, getLineNumber(matcher.group(2)), message);
return createWarning(fileName, getLineNumber(matcher.group(2)), message, priority);
}
}

@@ -1,14 +1,14 @@
package hudson.plugins.warnings.parser;

import static org.junit.Assert.*;

import java.io.IOException;
import java.util.Collection;
import java.util.Iterator;

import org.apache.commons.lang.StringUtils;
import org.junit.Test;

import static org.junit.Assert.*;

import hudson.plugins.analysis.util.model.FileAnnotation;
import hudson.plugins.analysis.util.model.Priority;

Expand All @@ -19,7 +19,64 @@ public class JavaDocParserTest extends ParserTester {
private static final String TYPE = new JavaDocParser().getGroup();

/**
* Parses a file with two deprecation warnings.
* Parses a warning log with JavaDoc 1.8 warnings.
*
* @throws IOException
* if the file could not be read
* @see <a href="http://issues.jenkins-ci.org/browse/JENKINS-32298">Issue 32298</a>
*/
@Test
public void issue32298() throws IOException {
Collection<FileAnnotation> warnings = new JavaDocParser().parse(openFile("issue32298.txt"));
assertEquals(WRONG_NUMBER_OF_WARNINGS_DETECTED, 7, warnings.size());
Iterator<FileAnnotation> iterator = warnings.iterator();
FileAnnotation annotation = iterator.next();
checkWarning(annotation,
683,
"no description for @param",
"/var/lib/jenkins/jobs/Development/jobs/JavaDoc check/workspace/java/src/apps/Apps.java",
TYPE, StringUtils.EMPTY, Priority.NORMAL);
annotation = iterator.next();
checkWarning(annotation,
85,
"no description for @param",
"/var/lib/jenkins/jobs/Development/jobs/JavaDoc check/workspace/java/src/apps/AppsLaunchFrame.java",
TYPE, StringUtils.EMPTY, Priority.NORMAL);
annotation = iterator.next();
checkWarning(annotation,
86,
"no description for @param",
"/var/lib/jenkins/jobs/Development/jobs/JavaDoc check/workspace/java/src/apps/AppsLaunchFrame.java",
TYPE, StringUtils.EMPTY, Priority.NORMAL);
annotation = iterator.next();
checkWarning(annotation,
190,
"no description for @param",
"/var/lib/jenkins/jobs/Development/jobs/JavaDoc check/workspace/java/src/apps/AppsLaunchFrame.java",
TYPE, StringUtils.EMPTY, Priority.NORMAL);

annotation = iterator.next();
checkWarning(annotation,
25,
"bad use of '>'",
"/var/lib/jenkins/jobs/Development/jobs/JavaDoc check/workspace/java/src/jmri/jmrit/withrottle/MultiThrottle.java",
TYPE, StringUtils.EMPTY, Priority.HIGH);
annotation = iterator.next();
checkWarning(annotation,
26,
"malformed HTML",
"/var/lib/jenkins/jobs/Development/jobs/JavaDoc check/workspace/java/src/jmri/jmrit/withrottle/MultiThrottleController.java",
TYPE, StringUtils.EMPTY, Priority.HIGH);
annotation = iterator.next();
checkWarning(annotation,
26,
"bad use of '>'",
"/var/lib/jenkins/jobs/Development/jobs/JavaDoc check/workspace/java/src/jmri/jmrit/withrottle/MultiThrottleController.java",
TYPE, StringUtils.EMPTY, Priority.HIGH);
}

/**
* Parses a file with 6 warnings.
*
* @throws IOException
* if the file could not be read
Expand Down
21 changes: 21 additions & 0 deletions src/test/resources/hudson/plugins/warnings/parser/issue32298.txt
@@ -0,0 +1,21 @@
[javadoc] /var/lib/jenkins/jobs/Development/jobs/JavaDoc check/workspace/java/src/apps/Apps.java:683: warning: no description for @param
[javadoc] * @param wi
[javadoc] ^
[javadoc] /var/lib/jenkins/jobs/Development/jobs/JavaDoc check/workspace/java/src/apps/AppsLaunchFrame.java:85: warning: no description for @param
[javadoc] * @param menuBar
[javadoc] ^
[javadoc] /var/lib/jenkins/jobs/Development/jobs/JavaDoc check/workspace/java/src/apps/AppsLaunchFrame.java:86: warning: no description for @param
[javadoc] * @param wi
[javadoc] ^
[javadoc] /var/lib/jenkins/jobs/Development/jobs/JavaDoc check/workspace/java/src/apps/AppsLaunchFrame.java:190: warning: no description for @param
[javadoc] * @param menuBar


[javadoc] /var/lib/jenkins/jobs/Development/jobs/JavaDoc check/workspace/java/src/jmri/jmrit/withrottle/MultiThrottle.java:25: error: bad use of '>'
[javadoc] * <li> MT-L757<;>L757 On T throttle, remove loco L757. (Still has L1234)
[javadoc] ^
[javadoc] /var/lib/jenkins/jobs/Development/jobs/JavaDoc check/workspace/java/src/jmri/jmrit/withrottle/MultiThrottleController.java:26: error: malformed HTML
[javadoc] * Includes a separator - <;>
[javadoc] ^
[javadoc] /var/lib/jenkins/jobs/Development/jobs/JavaDoc check/workspace/java/src/jmri/jmrit/withrottle/MultiThrottleController.java:26: error: bad use of '>'
[javadoc] * Includes a separator - <;>
1 change: 1 addition & 0 deletions warnings.iml
Expand Up @@ -13,6 +13,7 @@
<excludeFolder url="file://$MODULE_DIR$/target/classes" />
<excludeFolder url="file://$MODULE_DIR$/target/generated-sources/groovy-stubs" />
<excludeFolder url="file://$MODULE_DIR$/target/jenkins-for-test" />
<excludeFolder url="file://$MODULE_DIR$/target/jenkins-for-testx" />
<excludeFolder url="file://$MODULE_DIR$/target/maven-status" />
<excludeFolder url="file://$MODULE_DIR$/target/surefire-reports" />
<excludeFolder url="file://$MODULE_DIR$/target/test-classes" />
Expand Down

0 comments on commit 5d40b25

Please sign in to comment.