From 749401199951572fb31bb94892192ed5da20e100 Mon Sep 17 00:00:00 2001 From: Andreas Dangel Date: Mon, 15 Apr 2013 21:33:49 +0200 Subject: [PATCH] pmd: fix #254 False+ : UnusedImport with Javadoc @throws --- pmd/etc/changelog.txt | 1 + .../java/rule/imports/UnusedImportsRule.java | 6 +++++- .../java/rule/imports/xml/UnusedImports.xml | 19 +++++++++++++++++++ .../rule/typeresolution/xml/UnusedImports.xml | 5 ++++- 4 files changed, 29 insertions(+), 2 deletions(-) diff --git a/pmd/etc/changelog.txt b/pmd/etc/changelog.txt index a43ad74fc2..a74ea97c99 100644 --- a/pmd/etc/changelog.txt +++ b/pmd/etc/changelog.txt @@ -1,5 +1,6 @@ ????? ??, 2013 - 5.0.4: +Fixed bug 254: False+ : UnusedImport with Javadoc @throws Fixed bug 1080: net.sourceforge.pmd.cpd.CPDTest test failing Fixed bug 1081: Regression: CPD skipping all files when using relative paths Fixed bug 1082: CPD performance issue on larger projects diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/java/rule/imports/UnusedImportsRule.java b/pmd/src/main/java/net/sourceforge/pmd/lang/java/rule/imports/UnusedImportsRule.java index bfddf5cae9..d7751762a5 100644 --- a/pmd/src/main/java/net/sourceforge/pmd/lang/java/rule/imports/UnusedImportsRule.java +++ b/pmd/src/main/java/net/sourceforge/pmd/lang/java/rule/imports/UnusedImportsRule.java @@ -50,6 +50,7 @@ public class UnusedImportsRule extends AbstractJavaRule { * {@linkplain package.class#member label} * {@link package.class#member label} * {@value package.class#field} + * @throws package.class label */ private static final Pattern SEE_PATTERN = Pattern.compile( "@see\\s+(\\p{Alpha}\\p{Alnum}*)[\\s#]"); @@ -60,7 +61,10 @@ public class UnusedImportsRule extends AbstractJavaRule { private static final Pattern VALUE_PATTERN = Pattern.compile( "\\{@value\\s+(\\p{Alpha}\\p{Alnum}*)[\\s#\\}]"); - private static final Pattern[] PATTERNS = { SEE_PATTERN, LINK_PATTERNS, VALUE_PATTERN }; + private static final Pattern THROWS_PATTERN = Pattern.compile( + "@throws\\s+(\\p{Alpha}\\p{Alnum}*)"); + + private static final Pattern[] PATTERNS = { SEE_PATTERN, LINK_PATTERNS, VALUE_PATTERN, THROWS_PATTERN }; private void visitComments(ASTCompilationUnit node) { if (imports.isEmpty()) { diff --git a/pmd/src/test/resources/net/sourceforge/pmd/lang/java/rule/imports/xml/UnusedImports.xml b/pmd/src/test/resources/net/sourceforge/pmd/lang/java/rule/imports/xml/UnusedImports.xml index d4cfa3ab61..a79dfd5527 100644 --- a/pmd/src/test/resources/net/sourceforge/pmd/lang/java/rule/imports/xml/UnusedImports.xml +++ b/pmd/src/test/resources/net/sourceforge/pmd/lang/java/rule/imports/xml/UnusedImports.xml @@ -218,4 +218,23 @@ import edu.umd.cs.findbugs.annotations.DefaultAnnotation; import edu.umd.cs.findbugs.annotations.NonNull; ]]> + + + bug #254 False+ : UnusedImport with Javadoc @link + 0 + + diff --git a/pmd/src/test/resources/net/sourceforge/pmd/lang/java/rule/typeresolution/xml/UnusedImports.xml b/pmd/src/test/resources/net/sourceforge/pmd/lang/java/rule/typeresolution/xml/UnusedImports.xml index aeb92a76b6..293409a27b 100644 --- a/pmd/src/test/resources/net/sourceforge/pmd/lang/java/rule/typeresolution/xml/UnusedImports.xml +++ b/pmd/src/test/resources/net/sourceforge/pmd/lang/java/rule/typeresolution/xml/UnusedImports.xml @@ -156,7 +156,7 @@ public class Foo { 0