PMD Results
The following document contains the results of PMD 5.5.1.
Files
fr/paris/lutece/plugins/easyrulesbot/business/Post.java
Violation |
Line |
Avoid short class names like Post |
41–92 |
fr/paris/lutece/plugins/easyrulesbot/service/bot/BotExecutor.java
Violation |
Line |
Private field '_bot' could be made final; it is only initialized in the declaration or constructor. |
66 |
Private field '_locale' could be made final; it is only initialized in the declaration or constructor. |
67 |
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation |
69 |
Private field '_mapData' could be made final; it is only initialized in the declaration or constructor. |
69 |
Use block level rather than method level synchronization |
178–193 |
Assigning an Object to null is a code smell. Consider refactoring. |
180 |
fr/paris/lutece/plugins/easyrulesbot/service/bot/EasyRulesBot.java
Violation |
Line |
Avoid unused private fields such as 'PROPERTY_LAST_MESSAGE'. |
55 |
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation |
57 |
StringBuffer (or StringBuilder).append is called 2 consecutive times with literal Strings. Use a single append with a single combined String. |
159 |
StringBuffer constructor is initialized with size 32, but has at least 100 characters appended. |
159 |
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. |
160 |
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. |
161 |
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. |
162 |
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. |
163 |
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. |
164 |
Avoid variables with short names like br |
168 |
fr/paris/lutece/plugins/easyrulesbot/service/bot/rules/BotRule.java
Violation |
Line |
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation |
215 |
Prefer StringBuffer over += for concatenating strings |
219 |
A method/constructor shouldnt explicitly throw java.lang.Exception |
334 |
A method/constructor shouldnt explicitly throw java.lang.Exception |
334 |
StringBuffer (or StringBuilder).append is called 2 consecutive times with literal Strings. Use a single append with a single combined String. |
379 |
StringBuffer constructor is initialized with size 25, but has at least 105 characters appended. |
379 |
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. |
380 |
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. |
381 |
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. |
382 |
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. |
383 |
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. |
384 |
fr/paris/lutece/plugins/easyrulesbot/service/bot/rules/conditions/AbstractCondition.java
Violation |
Line |
Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes. |
68 |
fr/paris/lutece/plugins/easyrulesbot/service/bot/rules/conditions/ConditionsService.java
Violation |
Line |
All methods are static. Consider using a utility class instead. Alternatively, you could add a private constructor or make the class abstract to silence this warning. |
46–73 |
Singleton is not thread safe |
59–67 |
fr/paris/lutece/plugins/easyrulesbot/service/bot/rules/conditions/DataMissingCondition.java
Violation |
Line |
Avoid appending characters as strings in StringBuffer.append. |
81 |
fr/paris/lutece/plugins/easyrulesbot/service/bot/rules/conditions/DataValueCondition.java
Violation |
Line |
StringBuffer constructor is initialized with size 16, but has at least 59 characters appended. |
62 |
Avoid appending characters as strings in StringBuffer.append. |
65 |
fr/paris/lutece/plugins/easyrulesbot/service/response/filters/FiltersService.java
Violation |
Line |
All methods are static. Consider using a utility class instead. Alternatively, you could add a private constructor or make the class abstract to silence this warning. |
46–69 |
Singleton is not thread safe |
58–66 |
fr/paris/lutece/plugins/easyrulesbot/service/response/filters/StopOnWordFilter.java
Violation |
Line |
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation |
56 |
Private field '_mapLocaleStopWordsList' could be made final; it is only initialized in the declaration or constructor. |
56 |
Private field '_mapLocaleResponseMessageList' could be made final; it is only initialized in the declaration or constructor. |
58 |
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation |
58 |
When doing a String.toLowerCase()/toUpperCase() call, use a Locale |
109 |
Avoid reassigning parameters such as 'locale' |
129 |
Avoid declaring a variable if it is unreferenced before a possible exit point. |
131 |
fr/paris/lutece/plugins/easyrulesbot/service/response/processors/MultipleValuesResponseProcessor.java
Violation |
Line |
When doing a String.toLowerCase()/toUpperCase() call, use a Locale |
104 |
fr/paris/lutece/plugins/easyrulesbot/service/response/processors/ProcessorsService.java
Violation |
Line |
All methods are static. Consider using a utility class instead. Alternatively, you could add a private constructor or make the class abstract to silence this warning. |
46–69 |
Singleton is not thread safe |
58–66 |
fr/paris/lutece/plugins/easyrulesbot/service/yaml/YamlBotLoader.java
Violation |
Line |
All methods are static. Consider using a utility class instead. Alternatively, you could add a private constructor or make the class abstract to silence this warning. |
67–202 |
debug logging that involves string concatenation should be guarded with isDebugEnabled() checks |
86 |
debug logging that involves string concatenation should be guarded with isDebugEnabled() checks |
101 |
debug logging that involves string concatenation should be guarded with isDebugEnabled() checks |
176 |
Singleton is not thread safe |
183–190 |
fr/paris/lutece/plugins/easyrulesbot/service/yaml/model/YamlBot.java
Violation |
Line |
A getX() method which returns a boolean should be named isX() |
185–188 |
StringBuffer (or StringBuilder).append is called 2 consecutive times with literal Strings. Use a single append with a single combined String. |
249 |
StringBuffer constructor is initialized with size 32, but has at least 118 characters appended. |
249 |
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. |
250 |
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. |
251 |
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. |
252 |
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. |
253 |
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. |
254 |
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. |
255 |
fr/paris/lutece/plugins/easyrulesbot/service/yaml/model/YamlCondition.java
Violation |
Line |
StringBuffer constructor is initialized with size 32, but has at least 50 characters appended. |
94 |
StringBuffer (or StringBuilder).append is called 2 consecutive times with literal Strings. Use a single append with a single combined String. |
94 |
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. |
95 |
Avoid appending characters as strings in StringBuffer.append. |
101 |
fr/paris/lutece/plugins/easyrulesbot/service/yaml/model/YamlRule.java
Violation |
Line |
StringBuffer constructor is initialized with size 25, but has at least 105 characters appended. |
271 |
StringBuffer (or StringBuilder).append is called 2 consecutive times with literal Strings. Use a single append with a single combined String. |
271 |
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. |
272 |
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. |
273 |
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. |
274 |
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. |
275 |
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. |
276 |
fr/paris/lutece/plugins/easyrulesbot/util/FileUtils.java
Violation |
Line |
All methods are static. Consider using a utility class instead. Alternatively, you could add a private constructor or make the class abstract to silence this warning. |
58–181 |
Avoid variables with short names like br |
75 |
Avoid variables with short names like is |
128 |
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation |
130 |
Avoid variables with short names like br |
134 |
String.trim().length()==0 is an inefficient way to validate an empty String. |
144 |
Avoid variables with short names like m |
150 |