Fork me on GitHub

PMD Results

The following document contains the results of PMD 5.2.3.

Files

splitlog-api: the public APIs - com/github/triceo/splitlog/api/LogWatchBuilder.java

Violation Line
This class has too many methods, consider refactoring it. 31–390
Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes. 72
Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes. 73
Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes. 74
Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes. 75
Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes. 76
Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes. 77
Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes. 78
Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes. 79
Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes. 80
Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes. 81
StringBuffer constructor is initialized with size 16, but has at least 139 characters appended. 265
Avoid appending characters as strings in StringBuffer.append. 280

splitlog-api: the public APIs - com/github/triceo/splitlog/logging/SplitlogLoggerFactory.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. 26–154
Use block level rather than method level synchronization 52–63
Use block level rather than method level synchronization 100–115
Avoid unnecessary if..then..else statements when returning booleans 109–113
Use block level rather than method level synchronization 122–136
Use block level rather than method level synchronization 141–152

splitlog-core: the client library - com/github/triceo/splitlog/AbstractCommonFollower.java

Violation Line
This class has too many methods, consider refactoring it. 37–192

splitlog-core: the client library - com/github/triceo/splitlog/ConsumerManager.java

Violation Line
This class has too many methods, consider refactoring it. 24–212
Use block level rather than method level synchronization 44–46
Use block level rather than method level synchronization 49–51
Use block level rather than method level synchronization 54–56
Use block level rather than method level synchronization 68–70
Use block level rather than method level synchronization 73–75
Use block level rather than method level synchronization 137–153
Use block level rather than method level synchronization 183–188
Use block level rather than method level synchronization 191–199
StringBuffer constructor is initialized with size 16, but has at least 32 characters appended. 203
Avoid appending characters as strings in StringBuffer.append. 208

splitlog-core: the client library - com/github/triceo/splitlog/DefaultFollower.java

Violation Line
Use block level rather than method level synchronization 98–107
StringBuffer constructor is initialized with size 16, but has at least 48 characters appended. 164
Avoid appending characters as strings in StringBuffer.append. 169

splitlog-core: the client library - com/github/triceo/splitlog/DefaultLogWatch.java

Violation Line
Possible God class (WMC=54, ATFD=10, TCC=0.0) 1–354
This class has too many methods, consider refactoring it. 39–354
Avoid protected methods in a final class that doesnt extend anything other than Object. Change to private or package access. 93–95
Use block level rather than method level synchronization 138–140
Use block level rather than method level synchronization 143–145
Use block level rather than method level synchronization 228–247
Use block level rather than method level synchronization 250–263
Use block level rather than method level synchronization 277–290
Avoid if (x != y) ..; else ..; 278–282
Use block level rather than method level synchronization 308–321
Use block level rather than method level synchronization 324–326
Use block level rather than method level synchronization 329–331
StringBuffer constructor is initialized with size 16, but has at least 48 characters appended. 345
Avoid appending characters as strings in StringBuffer.append. 350

splitlog-core: the client library - com/github/triceo/splitlog/DefaultMergingFollower.java

Violation Line
Use block level rather than method level synchronization 91–98
Avoid if (x != y) ..; else ..; 137–146
StringBuffer constructor is initialized with size 16, but has at least 67 characters appended. 166
StringBuffer (or StringBuilder).append is called 2 consecutive times with literal Strings. Use a single append with a single combined String. 167
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 167
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 168
StringBuffer (or StringBuilder).append is called 2 consecutive times with literal Strings. Use a single append with a single combined String. 168
Avoid appending characters as strings in StringBuffer.append. 169

splitlog-core: the client library - com/github/triceo/splitlog/DefaultMessage.java

Violation Line
StringBuffer constructor is initialized with size 16, but has at least 27 characters appended. 246
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 247
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 248
Avoid appending characters as strings in StringBuffer.append. 249
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 249
StringBuffer (or StringBuilder).append is called 2 consecutive times with literal Strings. Use a single append with a single combined String. 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
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 256
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 257
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 258
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 259
Avoid appending characters as strings in StringBuffer.append. 260

splitlog-core: the client library - com/github/triceo/splitlog/DefaultMessageConsumer.java

Violation Line
The class 'DefaultMessageConsumer' has a Cyclomatic Complexity of 3 (Highest = 10). 9–90
The class 'DefaultMessageConsumer' has a Standard Cyclomatic Complexity of 3 (Highest = 10). 9–90
The class 'DefaultMessageConsumer' has a Modified Cyclomatic Complexity of 3 (Highest = 10). 9–90
The method 'equals' has a Standard Cyclomatic Complexity of 10. 24–50
The method 'equals' has a Modified Cyclomatic Complexity of 10. 24–50
The method 'equals' has a Cyclomatic Complexity of 10. 24–50
StringBuffer constructor is initialized with size 16, but has at least 27 characters appended. 78
Avoid appending characters as strings in StringBuffer.append. 86

splitlog-core: the client library - com/github/triceo/splitlog/DefaultMessageMetric.java

Violation Line
Use block level rather than method level synchronization 54–59
Use block level rather than method level synchronization 62–70
Avoid if (x != y) ..; else ..; 65–69
Use block level rather than method level synchronization 78–83
Use block level rather than method level synchronization 86–94
Avoid if (x != y) ..; else ..; 89–93
Use block level rather than method level synchronization 102–113
StringBuffer constructor is initialized with size 16, but has at least 59 characters appended. 126
Avoid appending characters as strings in StringBuffer.append. 135

splitlog-core: the client library - com/github/triceo/splitlog/LogWatchStorageManager.java

Violation Line
Use block level rather than method level synchronization 47–58
Use block level rather than method level synchronization 60–72
Avoid protected methods in a final class that doesnt extend anything other than Object. Change to private or package access. 88–109
Use block level rather than method level synchronization 88–109
Use block level rather than method level synchronization 122–130
Avoid protected methods in a final class that doesnt extend anything other than Object. Change to private or package access. 142–163
Use block level rather than method level synchronization 142–163
Avoid protected methods in a final class that doesnt extend anything other than Object. Change to private or package access. 177–179
Use block level rather than method level synchronization 189–197
Use block level rather than method level synchronization 207–209
Use block level rather than method level synchronization 221–223
Use block level rather than method level synchronization 228–234
Use block level rather than method level synchronization 236–249

splitlog-core: the client library - com/github/triceo/splitlog/LogWatchTailingManager.java

Violation Line
Avoid protected methods in a final class that doesnt extend anything other than Object. Change to private or package access. 67–80
Avoid protected methods in a final class that doesnt extend anything other than Object. Change to private or package access. 82–87
Avoid protected methods in a final class that doesnt extend anything other than Object. Change to private or package access. 89–129
Avoid protected methods in a final class that doesnt extend anything other than Object. Change to private or package access. 178–190

splitlog-core: the client library - com/github/triceo/splitlog/MessageBuilder.java

Violation Line
Use block level rather than method level synchronization 46–49
Use block level rather than method level synchronization 66–76
Use block level rather than method level synchronization 82–89
Use block level rather than method level synchronization 91–100
Use block level rather than method level synchronization 115–117

splitlog-core: the client library - com/github/triceo/splitlog/MessageStore.java

Violation Line
Use block level rather than method level synchronization 65–75
Use block level rather than method level synchronization 98–123
Use block level rather than method level synchronization 144–150
Use block level rather than method level synchronization 172–190
Use block level rather than method level synchronization 197–199
Use block level rather than method level synchronization 217–219
Use block level rather than method level synchronization 230–232

splitlog-core: the client library - com/github/triceo/splitlog/expectations/AbstractExpectation.java

Violation Line
Avoid using redundant field initializer for 'stash' 45
Avoid if (x != y) ..; else ..; 103–108
A method/constructor shouldnt explicitly throw java.lang.Exception 116
A method/constructor shouldnt explicitly throw java.lang.Exception 116

splitlog-core: the client library - com/github/triceo/splitlog/expectations/AbstractExpectationManager.java

Violation Line
Use block level rather than method level synchronization 47–56
Use block level rather than method level synchronization 66–68
Use block level rather than method level synchronization 78–87
Use block level rather than method level synchronization 109–116

splitlog-core: the client library - com/github/triceo/splitlog/formatters/UnifyingMessageFormatter.java

Violation Line
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 24
Avoid appending characters as strings in StringBuffer.append. 24
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 25
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 26
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 27
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 28
Avoid appending characters as strings in StringBuffer.append. 28
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 29
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 30
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 31
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 32
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 33
Avoid appending characters as strings in StringBuffer.append. 34

splitlog-core: the client library - com/github/triceo/splitlog/splitters/JBossServerLogTailSplitter.java

Violation Line
Position literals first in String comparisons 60
Position literals first in String comparisons 60
Position literals first in String comparisons 72
Position literals first in String comparisons 74
Position literals first in String comparisons 76
Position literals first in String comparisons 78
Position literals first in String comparisons 80
Position literals first in String comparisons 96
Position literals first in String comparisons 98

splitlog-core: the client library - com/github/triceo/splitlog/splitters/exceptions/DefaultExceptionDescriptor.java

Violation Line
The class 'DefaultExceptionDescriptor' has a Standard Cyclomatic Complexity of 3 (Highest = 14). 17–201
The class 'DefaultExceptionDescriptor' has a Cyclomatic Complexity of 3 (Highest = 14). 17–201
The class 'DefaultExceptionDescriptor' has a Modified Cyclomatic Complexity of 3 (Highest = 14). 17–201
Avoid empty if statements 37–39
Avoid empty if statements 37–39
Avoid instantiation through private constructors from outside of the constructors class. 48–49
Avoid instantiating new objects inside loops 48–49
Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes. 82
Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes. 84
Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes. 85
The method 'equals' has a Modified Cyclomatic Complexity of 14. 96–132
The method equals() has an NPath complexity of 1024 96–132
The method 'equals' has a Cyclomatic Complexity of 14. 96–132
The method 'equals' has a Standard Cyclomatic Complexity of 14. 96–132
StringBuffer constructor is initialized with size 16, but has at least 28 characters appended. 183
Avoid appending characters as strings in StringBuffer.append. 197

splitlog-core: the client library - com/github/triceo/splitlog/splitters/exceptions/ExceptionParser.java

Violation Line
Switch statements should have a default label 39–51
Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes. 137
Use block level rather than method level synchronization 150–171

splitlog-core: the client library - com/github/triceo/splitlog/splitters/exceptions/StackTraceEndLine.java

Violation Line
StringBuffer constructor is initialized with size 16, but has at least 36 characters appended. 17
Avoid appending characters as strings in StringBuffer.append. 18

splitlog-core: the client library - com/github/triceo/splitlog/splitters/exceptions/StackTraceEndParser.java

Violation Line
Avoid if (x != y) ..; else ..; 10–19
Avoid if (x != y) ..; else ..; 12–16

splitlog-core: the client library - com/github/triceo/splitlog/splitters/exceptions/StackTraceLine.java

Violation Line
The class 'StackTraceLine' has a Cyclomatic Complexity of 2 (Highest = 13). 3–111
Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes. 24
Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes. 26
Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes. 28
The constructor 'StackTraceLine' has a Cyclomatic Complexity of 13. 39–61
Avoid if (x != y) ..; else ..; 45–49
Avoid if (x != y) ..; else ..; 50–56
StringBuffer constructor is initialized with size 16, but has at least 38 characters appended. 89
Avoid appending characters as strings in StringBuffer.append. 107

splitlog-core: the client library - com/github/triceo/splitlog/splitters/exceptions/StackTraceParser.java

Violation Line
The class 'StackTraceParser' has a Cyclomatic Complexity of 13 (Highest = 12). 5–49
The class 'StackTraceParser' has a Standard Cyclomatic Complexity of 11 (Highest = 10). 5–49
The class 'StackTraceParser' has a Modified Cyclomatic Complexity of 11 (Highest = 10). 5–49
The method 'parse' has a Standard Cyclomatic Complexity of 10. 8–47
The method 'parse' has a Modified Cyclomatic Complexity of 10. 8–47
The method 'parse' has a Cyclomatic Complexity of 12. 8–47
The method parse() has an NPath complexity of 300 8–47
Avoid declaring a variable if it is unreferenced before a possible exit point. 14
Avoid declaring a variable if it is unreferenced before a possible exit point. 15
Position literals first in String comparisons 22
Position literals first in String comparisons 28

splitlog-core: the client library - com/github/triceo/splitlog/util/LogUtil.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. 10–51
Switch statements should have a default label 33–49

splitlog-core: the client library - com/github/triceo/splitlog/util/SplitlogThreadFactory.java

Violation Line
Avoid using java.lang.ThreadGroup; it is not thread safe 16

splitlog-core: the client library - org/apache/commons/io/input/Tailer.java

Violation Line
Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes. 301
Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes. 303
Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes. 308
Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes. 310
Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes. 312
Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes. 314

splitlog-core: the client library - org/apache/commons/io/input/TailerRun.java

Violation Line
The class 'TailerRun' has a Cyclomatic Complexity of 4 (Highest = 11). 17–221
The class 'TailerRun' has a Standard Cyclomatic Complexity of 4 (Highest = 11). 17–221
The class 'TailerRun' has a Modified Cyclomatic Complexity of 4 (Highest = 11). 17–221
Avoid using redundant field initializer for 'last' 44
Avoid using redundant field initializer for 'position' 54
Avoid using redundant field initializer for 'reader' 55
A switch statement does not contain a break 107–128
Avoid instantiating new objects inside loops 110
Avoid instantiating new objects inside loops 123
The method 'run' has a Standard Cyclomatic Complexity of 11. 138–219
The method 'run' has a Modified Cyclomatic Complexity of 11. 138–219
The method 'run' has a Cyclomatic Complexity of 11. 138–219