Added EmptyTryBlockRule
git-svn-id: https://pmd.svn.sourceforge.net/svnroot/pmd/trunk@244 51baf565-9d33-0410-a72c-fc3788e3496d
This commit is contained in:
@@ -35,7 +35,8 @@
|
|||||||
|
|
||||||
<target name="pmd">
|
<target name="pmd">
|
||||||
<taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask"/>
|
<taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask"/>
|
||||||
<pmd reportFile="c:\jdk14.html" rulesetfiles="rulesets/ticbuild.xml,rulesets/unusedcode.xml,rulesets/design.xml" format="html">
|
<!--<pmd reportFile="c:\jdk14.html" rulesetfiles="rulesets/ticbuild.xml,rulesets/unusedcode.xml,rulesets/design.xml" format="html">-->
|
||||||
|
<pmd reportFile="c:\jdk14.html" rulesetfiles="rulesets/new_for_0_4.xml" format="html">
|
||||||
<fileset dir="c:\data\pmd\pmd\src">
|
<fileset dir="c:\data\pmd\pmd\src">
|
||||||
<!--<fileset dir="c:\j2sdk1.4.0\src">-->
|
<!--<fileset dir="c:\j2sdk1.4.0\src">-->
|
||||||
<include name="**/*.java"/>
|
<include name="**/*.java"/>
|
||||||
|
@@ -2,4 +2,4 @@
|
|||||||
set MAIN=net.sourceforge.pmd.PMD
|
set MAIN=net.sourceforge.pmd.PMD
|
||||||
set TEST_FILE=c:\\data\\pmd\\pmd\\test-data\\%1%.java
|
set TEST_FILE=c:\\data\\pmd\\pmd\\test-data\\%1%.java
|
||||||
|
|
||||||
java %MAIN% %TEST_FILE% xml rulesets\unusedcode.xml
|
java %MAIN% %TEST_FILE% xml rulesets\new_for_0_4.xml
|
||||||
|
@@ -0,0 +1,35 @@
|
|||||||
|
/*
|
||||||
|
* User: tom
|
||||||
|
* Date: Jul 8, 2002
|
||||||
|
* Time: 3:31:37 PM
|
||||||
|
*/
|
||||||
|
package test.net.sourceforge.pmd.rules;
|
||||||
|
|
||||||
|
import net.sourceforge.pmd.Report;
|
||||||
|
import net.sourceforge.pmd.RuleViolation;
|
||||||
|
import net.sourceforge.pmd.rules.EmptyCatchBlockRule;
|
||||||
|
import net.sourceforge.pmd.rules.EmptyTryBlockRule;
|
||||||
|
|
||||||
|
public class EmptyTryBlockRuleTest extends RuleTst {
|
||||||
|
public EmptyTryBlockRuleTest(String name) {
|
||||||
|
super(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testEmptyTryBlock1() throws Throwable {
|
||||||
|
Report report = process("EmptyTryBlock1.java", new EmptyTryBlockRule());
|
||||||
|
assertEquals(1, report.size());
|
||||||
|
assertEquals(new EmptyTryBlockRule(), ((RuleViolation)report.iterator().next()).getRule());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testEmptyTryBlock2() throws Throwable {
|
||||||
|
Report report = process("EmptyTryBlock2.java", new EmptyTryBlockRule());
|
||||||
|
assertEquals(1, report.size());
|
||||||
|
assertEquals(new EmptyTryBlockRule(), ((RuleViolation)report.iterator().next()).getRule());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testEmptyTryBlock3() throws Throwable {
|
||||||
|
Report report = process("EmptyTryBlock3.java", new EmptyTryBlockRule());
|
||||||
|
assertTrue(report.isEmpty());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@@ -36,6 +36,26 @@ public class Foo {
|
|||||||
// return some hash value
|
// return some hash value
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
]]>
|
||||||
|
</example>
|
||||||
|
</rule>
|
||||||
|
|
||||||
|
<rule name="EmptyTryBlock"
|
||||||
|
message="Avoid empty try blocks"
|
||||||
|
class="net.sourceforge.pmd.rules.EmptyTryBlockRule">
|
||||||
|
<description>
|
||||||
|
Avoid empty try blocks
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<example>
|
||||||
|
<![CDATA[
|
||||||
|
// this is bad
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
try {
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
]]>
|
]]>
|
||||||
</example>
|
</example>
|
||||||
</rule>
|
</rule>
|
||||||
|
22
pmd/src/net/sourceforge/pmd/rules/EmptyTryBlockRule.java
Normal file
22
pmd/src/net/sourceforge/pmd/rules/EmptyTryBlockRule.java
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
/*
|
||||||
|
* User: tom
|
||||||
|
* Date: Jul 8, 2002
|
||||||
|
* Time: 3:34:04 PM
|
||||||
|
*/
|
||||||
|
package net.sourceforge.pmd.rules;
|
||||||
|
|
||||||
|
import net.sourceforge.pmd.AbstractRule;
|
||||||
|
import net.sourceforge.pmd.RuleContext;
|
||||||
|
import net.sourceforge.pmd.ast.ASTTryStatement;
|
||||||
|
import net.sourceforge.pmd.ast.ASTBlock;
|
||||||
|
|
||||||
|
public class EmptyTryBlockRule extends AbstractRule{
|
||||||
|
public Object visit(ASTTryStatement node, Object data){
|
||||||
|
RuleContext ctx = (RuleContext)data;
|
||||||
|
ASTBlock tryBlock = (ASTBlock)node.jjtGetChild(0);
|
||||||
|
if (tryBlock.jjtGetNumChildren() == 0) {
|
||||||
|
ctx.getReport().addRuleViolation(createRuleViolation(ctx, node.getBeginLine()));
|
||||||
|
}
|
||||||
|
return super.visit(node, data);
|
||||||
|
}
|
||||||
|
}
|
8
pmd/test-data/EmptyTryBlock1.java
Normal file
8
pmd/test-data/EmptyTryBlock1.java
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
public class EmptyTryBlock1 {
|
||||||
|
public void foo() {
|
||||||
|
try {
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
8
pmd/test-data/EmptyTryBlock2.java
Normal file
8
pmd/test-data/EmptyTryBlock2.java
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
public class EmptyTryBlock2 {
|
||||||
|
public void foo() {
|
||||||
|
try {
|
||||||
|
} finally {
|
||||||
|
int x = 5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
9
pmd/test-data/EmptyTryBlock3.java
Normal file
9
pmd/test-data/EmptyTryBlock3.java
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
public class EmptyTryBlock3 {
|
||||||
|
public void foo() {
|
||||||
|
try {
|
||||||
|
int f =2;
|
||||||
|
} finally {
|
||||||
|
int x = 5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user