Commit Graph

88 Commits

Author SHA1 Message Date
c44d94416d verify #1310 PMD cannot parse int.class with real example 2015-02-10 22:32:09 +01:00
5fbbe0ac94 verify #1310 PMD cannot parse int.class 2015-02-09 21:36:49 +01:00
5572f9896c Merge branch 'master' into tiobe-tiobe/csv_linenumber_per_file 2015-01-28 20:33:51 +01:00
4e23642f74 Rewrote java-design/FieldDeclarationsShouldBeAtStartOfClass as a java rule
Fixes #1308 PMD runs endlessly on some generated files
2015-01-28 20:22:24 +01:00
a51a58476c Another small performance improvement for rule FieldDeclarationsShouldBeAtStartOfClass
It is still the slowest rule from #1308 PMD runs endlessly on some generated files
2015-01-26 20:48:49 +01:00
1159350e91 Merge branch 'tiobe/csv_linenumber_per_file' of https://github.com/tiobe/pmd into tiobe-tiobe/csv_linenumber_per_file 2015-01-24 18:34:21 +01:00
172c20efa6 Small performance improvements for rule FieldDeclarationsShouldBeAtStartOfClass
It is the slowest rule from #1308 PMD runs endlessly on some generated files
2015-01-24 15:57:04 +01:00
9522ab3cd4 #1306 False positive on duplicate when using static imports 2015-01-22 19:30:20 +01:00
57beb7ed13 #914 False +ve from UnusedImports with wildcard static imports 2015-01-21 21:56:43 +01:00
b1769846e5 Created extra CSV output format 'csv_with_linecount_per_file' which outputs the correct line count per file.
Some of the tokenizers ignore comments and therefore the line count of a
duplication can differ per file. Take for example the following files:

FileA.java:

1: public class FileA {
2:  pulbic String Foo() {
3:    return "Foo";
4:   }
5:  }

FileB.java:

1: public class FileB {
2:   pulbic String Foo() {
3:     // This is a comment
4:     return "Foo";
5:   }
6: }

When comments are ignored and not tokenized, the duplication consist of
the following tokens:

'{', 'public', 'String', 'Foo', '(', ')', '{', 'return', 'Foo', ';',
'}', '}'

For 'FileA.java' the duplication is 5 lines long, it starts at line 1
and ends at line 5. For 'FileB.java' the duplication is 6 lines long, it
starts at line 1 and ends at line 6.

Note that this is just 1 example, because for most tokenizers comments
and white spaces are not significant. For example the following file
contains the same duplication all on 1 line:

FileC.java

1: public class FileC { public String Foo() { return "Foo"; } }

For us the correct line count per file is important, because we
highlight the duplications in an annotated source view and show the
percentage of duplicated code the file contains. The current output
formats only contain 1 line count per duplication and file set. For the
above example CPD would output the following:

Found a 4 line (12 tokens) duplication in the following files:
Starting at line 1 of FileA.java
Starting at line 1 of FileB.java

For FileB.java this is not correct and would lead to incorrect
percentage of duplicated code. (66% (4 of 6 lines) instead of the
correct 83% (5 of 6 lines)).

To fix the problem, I created an extra output format
'csv_with_linecount_per_file' which outputs the correct line count per
file. The format contains the following:

tokens,occurrences
<nr of tokens>,<nr of occurrences>(,<begin line>,<line count>,<file
name>)+

For the above example the output would be

tokens,occurrences
12,2,1,4,FileA.java,1,5,FileB.java
2015-01-21 13:55:49 +01:00
a2a8d6c227 Remove xerces dependencies 2015-01-19 19:22:03 +01:00
5ae01d2d3e Up version to 5.3.0-SNAPSHOT 2015-01-18 12:19:52 +01:00
a4fbcef536 Merge branch 'tiobe/pmd-scala' of https://github.com/tiobe/pmd into tiobe-tiobe/pmd-scala 2015-01-18 11:22:03 +01:00
6b69174e24 #1296 PMD UnusedPrivateMethod invalid detection of 'private void method(int,boolean,Integer...)' 2015-01-17 22:42:58 +01:00
9d96d974de #1299 MethodReturnsInternalArray false positive 2015-01-17 11:32:55 +01:00
24a435a42e RedundantFieldInitializer - consider binary literals and underscores (java7) 2015-01-17 11:08:46 +01:00
89572efe0d #1298 Member variable int type with value 0xff000000 causes processing error 2015-01-16 21:34:05 +01:00
5776c0e9c5 Made exceptions of the Scala tokenizer non-fatal when CPD is executed with the '--skipLexicalErrors' command line option. 2015-01-15 16:01:28 +01:00
0e6a5db426 [maven-release-plugin] prepare for next development iteration 2014-12-21 11:46:02 +01:00
6c316e9375 [maven-release-plugin] prepare release pmd_releases/5.2.3 2014-12-21 11:46:02 +01:00
0fce9a497b #1289 CommentRequired not ignored if javadoc {@inheritDoc} anon inner classes 2014-12-18 19:20:16 +01:00
763b38e8de verify #1296 PMD UnusedPrivateMethod invalid detection of 'private void method(int,boolean,Integer...)' 2014-12-18 18:52:28 +01:00
5530d7eb94 #1288 MethodNamingConventions for native should be deactivated 2014-12-17 21:52:42 +01:00
e48f18cce2 #1293 Disable VariableNamingConventions for native methods 2014-12-17 21:42:49 +01:00
071040929e verify #1293 VariableNamingConventions False positive for native methods 2014-12-15 21:10:21 +01:00
5daa4a9382 #1294 False positive UnusedPrivateMethod with public inner enum from another class 2014-12-14 18:01:07 +01:00
db51c7d217 Update changelog 2014-12-14 11:29:58 +01:00
3a2e1474d3 spaces 2014-12-12 20:50:20 +01:00
50df3e0e11 Allow byte[] data and byte data[] as no-varargs last argument 2014-12-12 20:39:46 +01:00
aea6c74a8f java/design/UseVargs - update changelog, extend test case 2014-12-12 19:26:36 +01:00
a07d8bdfce Update design.xml 2014-12-11 10:50:23 +01:00
c5f28f4879 Allow byte[] as no-varargs final argument 2014-12-09 22:48:21 +01:00
ac0181f017 [maven-release-plugin] prepare for next development iteration 2014-12-03 19:22:19 +01:00
c577dc8aac [maven-release-plugin] prepare release pmd_releases/5.2.2 2014-12-03 19:22:19 +01:00
7b58836ebb #1128 CompareObjectsWithEquals False Positive comparing boolean (primitive) values 2014-11-27 20:19:17 +01:00
4d16e3a582 #1286 UnusedPrivateMethod returns false positives for varags and enums 2014-11-26 19:21:44 +01:00
3fd0d7fe01 verify #1287 UnusedPrivateMethod returns false positives for Superclass 2014-11-26 19:12:33 +01:00
3ce7442c2d Fix unit test 2014-11-24 22:18:13 +01:00
20df4ca717 Don't rely on default encoding for unit tests 2014-11-24 21:06:16 +01:00
afc13b29a2 #1285 Prevent to modify the System environment 2014-11-24 20:18:44 +01:00
8ab9f3ed5d #1280 False Positive in UnusedImports when import used in javadoc 2014-11-18 22:27:07 +01:00
5f35ded04b Fix PMD dogfood issues in pmd-java 2014-11-16 11:38:42 +01:00
0bca478e31 #1282 False Positive with implicit String.valuesOf() (Java) 2014-11-15 17:02:50 +01:00
55a912e731 #1281 UnusedPrivateMethod incorrectly flagged for methods nested private classes 2014-11-15 16:51:51 +01:00
70723b16bc verify #1280 False Positive in UnusedImports when import used in javadoc 2014-11-15 15:19:12 +01:00
a8d7b594ab #1276 False positive in UnusedPrivateMethod with inner enum 2014-11-15 12:55:15 +01:00
a5bc2a079f #1276, #1278, #1279, #1280 False positive in UnusedPrivateMethod
Make the auxclasspath option optional. Falls back to the old behavior,
which prevents many false positives.
But it introduces the false negative case #1226, if no auxclasspath is set.
2014-11-15 12:21:18 +01:00
60fe895abf verify #1280 False Positive in UnusedImports when import used in javadoc 2014-11-13 20:10:14 +01:00
4da773b7fc Add ruleset factory tests for all languages 2014-11-09 11:20:54 +01:00
a97e9fc532 [maven-release-plugin] prepare for next development iteration 2014-11-03 19:59:01 +01:00