Fork me on GitHub

PMD Results

The following document contains the results of PMD 6.13.0.

Violations By Priority

Priority 1

fr/paris/lutece/plugins/oauth2/business/AuthClientConf.java

Rule Violation Line
FormalParameterNamingConventions The method parameter name '_bPublic' doesn't match '[a-z][a-zA-Z0-9]*' 129
FormalParameterNamingConventions The method parameter name '_bPKCE' doesn't match '[a-z][a-zA-Z0-9]*' 137

fr/paris/lutece/plugins/oauth2/business/AuthServerConf.java

Rule Violation Line
FormalParameterNamingConventions The method parameter name '_bEnableJwtParser' doesn't match '[a-z][a-zA-Z0-9]*' 168

fr/paris/lutece/plugins/oauth2/dataclient/AbstractDataClient.java

Rule Violation Line
FormalParameterNamingConventions The method parameter name '_bDefault' doesn't match '[a-z][a-zA-Z0-9]*' 283

fr/paris/lutece/plugins/oauth2/dataclient/DataClient.java

Rule Violation Line
FormalParameterNamingConventions The method parameter name '_bDefault' doesn't match '[a-z][a-zA-Z0-9]*' 178

fr/paris/lutece/plugins/oauth2/service/CallbackHandlerService.java

Rule Violation Line
ClassWithOnlyPrivateConstructorsShouldBeFinal A class which only has private constructors should be final 51110

fr/paris/lutece/plugins/oauth2/web/CallbackHandler.java

Rule Violation Line
LocalVariableNamingConventions The local variable name 'StrCodeVerifier' doesn't match '[a-z][a-zA-Z0-9]*' 367
FormalParameterNamingConventions The method parameter name '_handlerName' doesn't match '[a-z][a-zA-Z0-9]*' 554
FormalParameterNamingConventions The method parameter name '_bDefault' doesn't match '[a-z][a-zA-Z0-9]*' 592

fr/paris/lutece/plugins/oauth2/web/Constants.java

Rule Violation Line
ClassNamingConventions The utility class name 'Constants' doesn't match '[A-Z][a-zA-Z0-9]+(Utils?|Helper|Home|Service)' 3987

Priority 2

fr/paris/lutece/plugins/oauth2/dataclient/AbstractDataClient.java

Rule Violation Line
LoggerIsNotStaticFinal The Logger variable declaration does not contain the static and final modifiers 60
GuardLogStatement Logger calls should be surrounded by log level guards. 253

fr/paris/lutece/plugins/oauth2/dataclient/LogUserInfoDataClient.java

Rule Violation Line
GuardLogStatement Logger calls should be surrounded by log level guards. 57

fr/paris/lutece/plugins/oauth2/jwt/JjwtJWTParser.java

Rule Violation Line
GuardLogStatement Logger calls should be surrounded by log level guards. 89

fr/paris/lutece/plugins/oauth2/jwt/MitreJWTParser.java

Rule Violation Line
GuardLogStatement Logger calls should be surrounded by log level guards. 272

fr/paris/lutece/plugins/oauth2/service/CallbackHandlerService.java

Rule Violation Line
LoggerIsNotStaticFinal The Logger variable declaration does not contain the static and final modifiers 55

fr/paris/lutece/plugins/oauth2/service/DataClientService.java

Rule Violation Line
LoggerIsNotStaticFinal The Logger variable declaration does not contain the static and final modifiers 58

fr/paris/lutece/plugins/oauth2/service/TokenService.java

Rule Violation Line
LoggerIsNotStaticFinal The Logger variable declaration does not contain the static and final modifiers 63
AvoidReassigningParameters Avoid reassigning parameters such as 'strRedirectUri' 125
GuardLogStatement Logger calls should be surrounded by log level guards. 156
GuardLogStatement Logger calls should be surrounded by log level guards. 159
GuardLogStatement Logger calls should be surrounded by log level guards. 212
GuardLogStatement Logger calls should be surrounded by log level guards. 274

fr/paris/lutece/plugins/oauth2/web/CallbackHandler.java

Rule Violation Line
LoggerIsNotStaticFinal The Logger variable declaration does not contain the static and final modifiers 77
GuardLogStatement Logger calls should be surrounded by log level guards. 227
GuardLogStatement Logger calls should be surrounded by log level guards. 472

fr/paris/lutece/plugins/oauth2/web/OAuthLogoutServlet.java

Rule Violation Line
LoggerIsNotStaticFinal The Logger variable declaration does not contain the static and final modifiers 54
GuardLogStatement Logger calls should be surrounded by log level guards. 71

Priority 3

fr/paris/lutece/plugins/oauth2/business/AuthClientConf.java

Rule Violation Line
CommentRequired Public method and constructor comments are required 125127
CommentRequired Public method and constructor comments are required 129131
CommentRequired Public method and constructor comments are required 133135
CommentRequired Public method and constructor comments are required 137139

fr/paris/lutece/plugins/oauth2/business/IDToken.java

Rule Violation Line
InsufficientStringBufferDeclaration StringBuffer constructor is initialized with size 16, but has at least 103 characters appended. 224

fr/paris/lutece/plugins/oauth2/business/Token.java

Rule Violation Line
InsufficientStringBufferDeclaration StringBuffer constructor is initialized with size 16, but has at least 86 characters appended. 187

fr/paris/lutece/plugins/oauth2/dataclient/AbstractDataClient.java

Rule Violation Line
CommentRequired Public method and constructor comments are required 263276
MissingOverride The method 'handleError(HttpServletRequest, HttpServletResponse, String)' is missing an @Override annotation. 263276
MissingOverride The method 'isDefault()' is missing an @Override annotation. 278281
CommentRequired Public method and constructor comments are required 278281
CommentRequired Public method and constructor comments are required 283286
MissingOverride The method 'setDefault(boolean)' is missing an @Override annotation. 283286

fr/paris/lutece/plugins/oauth2/dataclient/LogUserInfoDataClient.java

Rule Violation Line
EmptyCatchBlock Avoid empty catch blocks 6366

fr/paris/lutece/plugins/oauth2/jwt/JjwtJWTParser.java

Rule Violation Line
CyclomaticComplexity The method 'parseJWT(Token, AuthClientConf, AuthServerConf, String, Logger)' has a cyclomatic complexity of 11. 62114
IdenticalCatchBranches 'catch' branch identical to 'SignatureException' branch 97100
IdenticalCatchBranches 'catch' branch identical to 'SignatureException' branch 101104
IdenticalCatchBranches 'catch' branch identical to 'SignatureException' branch 105108
IdenticalCatchBranches 'catch' branch identical to 'SignatureException' branch 109112

fr/paris/lutece/plugins/oauth2/jwt/MitreJWTParser.java

Rule Violation Line
ImmutableField Private field '_nTimeSkewAllowance' could be made final; it is only initialized in the declaration or constructor. 64
CyclomaticComplexity The method 'parseJWT(Token, AuthClientConf, AuthServerConf, String, Logger)' has a cyclomatic complexity of 45. 70275
NPathComplexity The method 'parseJWT(Token, AuthClientConf, AuthServerConf, String, Logger)' has an NPath complexity of 1119744 70275
NcssCount The method 'parseJWT(Token, AuthClientConf, AuthServerConf, String, Logger)' has a NCSS line count of 79. 70275
ExcessiveMethodLength Avoid really long methods. 70275
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 74
CollapsibleIfStatements These nested if statements could be combined 103106
AvoidDuplicateLiterals The String literal " got " appears 4 times in this file; the first occurrence is on line 153 153
PreserveStackTrace New exception is thrown in catch block, original stack trace may be lost 219

fr/paris/lutece/plugins/oauth2/service/BearerTokenAuthenticator.java

Rule Violation Line
ImmutableField Private field '_strAccessToken' could be made final; it is only initialized in the declaration or constructor. 50

fr/paris/lutece/plugins/oauth2/service/CallbackHandlerService.java

Rule Violation Line
UnusedPrivateField Avoid unused private fields such as '_logger'. 55
AvoidSynchronizedAtMethodLevel Use block level rather than method level synchronization 6775
UseCollectionIsEmpty Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 91

fr/paris/lutece/plugins/oauth2/service/DataClientService.java

Rule Violation Line
AvoidSynchronizedAtMethodLevel Use block level rather than method level synchronization 7079
ConfusingTernary Avoid if (x != y) ..; else ..; 120129
ConfusingTernary Avoid if (x != y) ..; else ..; 130141

fr/paris/lutece/plugins/oauth2/service/MapperService.java

Rule Violation Line
ShortVariable Avoid variables with short names like t 74

fr/paris/lutece/plugins/oauth2/service/OauthUtils.java

Rule Violation Line
CommentRequired Header comments are required 3859
UseUtilityClass 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. 3959

fr/paris/lutece/plugins/oauth2/service/PkceUtil.java

Rule Violation Line
CommentRequired Header comments are required 927
UseUtilityClass 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. 927
CommentRequired Public method and constructor comments are required 1117
CommentRequired Public method and constructor comments are required 1926

fr/paris/lutece/plugins/oauth2/service/TokenService.java

Rule Violation Line
CommentDefaultAccessModifier To avoid mistakes add a comment at the beginning of the _defaultClientConfig field if you want a default access modifier 60
DefaultPackage Use explicit scoping instead of the default package private level 60
CommentDefaultAccessModifier To avoid mistakes add a comment at the beginning of the _defaultauthServerConfig field if you want a default access modifier 61
DefaultPackage Use explicit scoping instead of the default package private level 61
UseObjectForClearerAPI Rather than using a lot of String arguments, consider using a container object for those values. 125126
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 134
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 203
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 204
EmptyCatchBlock Avoid empty catch blocks 222225
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 264
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 265
IdenticalCatchBranches 'catch' branch identical to 'IOException' branch 289293
EmptyCatchBlock Avoid empty catch blocks 294297
DefaultPackage Use explicit scoping instead of the default package private level 342345
CommentDefaultAccessModifier To avoid mistakes add a comment at the beginning of the parseToken method if you want a default access modifier 342345
CommentRequired Public method and constructor comments are required 347356
NonThreadSafeSingleton Singleton is not thread safe 349353

fr/paris/lutece/plugins/oauth2/web/CallbackHandler.java

Rule Violation Line
ExcessiveImports A high number of imports can indicate a high degree of coupling within an object. 34704
GodClass Possible God Class (WMC=64, ATFD=68, TCC=7.661%) 73704
TooManyMethods This class has too many methods, consider refactoring it. 74704
DefaultPackage Use explicit scoping instead of the default package private level 126144
CommentDefaultAccessModifier To avoid mistakes add a comment at the beginning of the handle method if you want a default access modifier 126144
ConfusingTernary Avoid if (x != y) ..; else ..; 131143
ConfusingTernary Avoid if (x != y) ..; else ..; 136143
ConfusingTernary Avoid if (x != y) ..; else ..; 160180
AvoidDuplicateLiterals The String literal "UTF-8" appears 4 times in this file; the first occurrence is on line 202 202
IdenticalCatchBranches 'catch' branch identical to 'IOException' branch 274279
IdenticalCatchBranches 'catch' branch identical to 'IOException' branch 280285
UnusedPrivateMethod Avoid unused private methods such as 'getStoredCodeChallenge(HttpSession)'. 400
ForLoopCanBeForeach This for loop can be replaced by a foreach loop 605622
UseIndexOfChar String.indexOf(char) is faster than String.indexOf(String). 610

fr/paris/lutece/plugins/oauth2/web/OAuthLogoutServlet.java

Rule Violation Line
ConfusingTernary Avoid if (x != y) ..; else ..; 6776

Priority 4

fr/paris/lutece/plugins/oauth2/service/CallbackHandlerService.java

Rule Violation Line
UnusedImports Avoid unused imports such as 'fr.paris.lutece.util.url.UrlItem' 44

fr/paris/lutece/plugins/oauth2/web/CallbackHandler.java

Rule Violation Line
UnusedImports Avoid unused imports such as 'java.util.ArrayList' 43
UnusedImports Avoid unused imports such as 'java.util.Arrays' 44
UnusedImports Avoid unused imports such as 'java.util.Iterator' 45
UnusedImports Avoid unused imports such as 'java.util.List' 46

fr/paris/lutece/plugins/oauth2/web/OAuthCallbackServlet.java

Rule Violation Line
UnusedImports Avoid unused imports such as 'java.util.List' 37
UnusedImports Avoid unused imports such as 'fr.paris.lutece.portal.service.spring.SpringContextService' 47

Files

fr/paris/lutece/plugins/oauth2/business/AuthClientConf.java

Rule Violation Priority Line
CommentRequired Public method and constructor comments are required 3 125127
FormalParameterNamingConventions The method parameter name '_bPublic' doesn't match '[a-z][a-zA-Z0-9]*' 1 129
CommentRequired Public method and constructor comments are required 3 129131
CommentRequired Public method and constructor comments are required 3 133135
FormalParameterNamingConventions The method parameter name '_bPKCE' doesn't match '[a-z][a-zA-Z0-9]*' 1 137
CommentRequired Public method and constructor comments are required 3 137139

fr/paris/lutece/plugins/oauth2/business/AuthServerConf.java

Rule Violation Priority Line
FormalParameterNamingConventions The method parameter name '_bEnableJwtParser' doesn't match '[a-z][a-zA-Z0-9]*' 1 168

fr/paris/lutece/plugins/oauth2/business/IDToken.java

Rule Violation Priority Line
InsufficientStringBufferDeclaration StringBuffer constructor is initialized with size 16, but has at least 103 characters appended. 3 224

fr/paris/lutece/plugins/oauth2/business/Token.java

Rule Violation Priority Line
InsufficientStringBufferDeclaration StringBuffer constructor is initialized with size 16, but has at least 86 characters appended. 3 187

fr/paris/lutece/plugins/oauth2/dataclient/AbstractDataClient.java

Rule Violation Priority Line
LoggerIsNotStaticFinal The Logger variable declaration does not contain the static and final modifiers 2 60
GuardLogStatement Logger calls should be surrounded by log level guards. 2 253
CommentRequired Public method and constructor comments are required 3 263276
MissingOverride The method 'handleError(HttpServletRequest, HttpServletResponse, String)' is missing an @Override annotation. 3 263276
MissingOverride The method 'isDefault()' is missing an @Override annotation. 3 278281
CommentRequired Public method and constructor comments are required 3 278281
FormalParameterNamingConventions The method parameter name '_bDefault' doesn't match '[a-z][a-zA-Z0-9]*' 1 283
CommentRequired Public method and constructor comments are required 3 283286
MissingOverride The method 'setDefault(boolean)' is missing an @Override annotation. 3 283286

fr/paris/lutece/plugins/oauth2/dataclient/DataClient.java

Rule Violation Priority Line
FormalParameterNamingConventions The method parameter name '_bDefault' doesn't match '[a-z][a-zA-Z0-9]*' 1 178

fr/paris/lutece/plugins/oauth2/dataclient/LogUserInfoDataClient.java

Rule Violation Priority Line
GuardLogStatement Logger calls should be surrounded by log level guards. 2 57
EmptyCatchBlock Avoid empty catch blocks 3 6366

fr/paris/lutece/plugins/oauth2/jwt/JjwtJWTParser.java

Rule Violation Priority Line
CyclomaticComplexity The method 'parseJWT(Token, AuthClientConf, AuthServerConf, String, Logger)' has a cyclomatic complexity of 11. 3 62114
GuardLogStatement Logger calls should be surrounded by log level guards. 2 89
IdenticalCatchBranches 'catch' branch identical to 'SignatureException' branch 3 97100
IdenticalCatchBranches 'catch' branch identical to 'SignatureException' branch 3 101104
IdenticalCatchBranches 'catch' branch identical to 'SignatureException' branch 3 105108
IdenticalCatchBranches 'catch' branch identical to 'SignatureException' branch 3 109112

fr/paris/lutece/plugins/oauth2/jwt/MitreJWTParser.java

Rule Violation Priority Line
ImmutableField Private field '_nTimeSkewAllowance' could be made final; it is only initialized in the declaration or constructor. 3 64
CyclomaticComplexity The method 'parseJWT(Token, AuthClientConf, AuthServerConf, String, Logger)' has a cyclomatic complexity of 45. 3 70275
NPathComplexity The method 'parseJWT(Token, AuthClientConf, AuthServerConf, String, Logger)' has an NPath complexity of 1119744 3 70275
NcssCount The method 'parseJWT(Token, AuthClientConf, AuthServerConf, String, Logger)' has a NCSS line count of 79. 3 70275
ExcessiveMethodLength Avoid really long methods. 3 70275
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 74
CollapsibleIfStatements These nested if statements could be combined 3 103106
AvoidDuplicateLiterals The String literal " got " appears 4 times in this file; the first occurrence is on line 153 3 153
PreserveStackTrace New exception is thrown in catch block, original stack trace may be lost 3 219
GuardLogStatement Logger calls should be surrounded by log level guards. 2 272

fr/paris/lutece/plugins/oauth2/service/BearerTokenAuthenticator.java

Rule Violation Priority Line
ImmutableField Private field '_strAccessToken' could be made final; it is only initialized in the declaration or constructor. 3 50

fr/paris/lutece/plugins/oauth2/service/CallbackHandlerService.java

Rule Violation Priority Line
UnusedImports Avoid unused imports such as 'fr.paris.lutece.util.url.UrlItem' 4 44
ClassWithOnlyPrivateConstructorsShouldBeFinal A class which only has private constructors should be final 1 51110
LoggerIsNotStaticFinal The Logger variable declaration does not contain the static and final modifiers 2 55
UnusedPrivateField Avoid unused private fields such as '_logger'. 3 55
AvoidSynchronizedAtMethodLevel Use block level rather than method level synchronization 3 6775
UseCollectionIsEmpty Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 3 91

fr/paris/lutece/plugins/oauth2/service/DataClientService.java

Rule Violation Priority Line
LoggerIsNotStaticFinal The Logger variable declaration does not contain the static and final modifiers 2 58
AvoidSynchronizedAtMethodLevel Use block level rather than method level synchronization 3 7079
ConfusingTernary Avoid if (x != y) ..; else ..; 3 120129
ConfusingTernary Avoid if (x != y) ..; else ..; 3 130141

fr/paris/lutece/plugins/oauth2/service/MapperService.java

Rule Violation Priority Line
ShortVariable Avoid variables with short names like t 3 74

fr/paris/lutece/plugins/oauth2/service/OauthUtils.java

Rule Violation Priority Line
CommentRequired Header comments are required 3 3859
UseUtilityClass 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. 3 3959

fr/paris/lutece/plugins/oauth2/service/PkceUtil.java

Rule Violation Priority Line
CommentRequired Header comments are required 3 927
UseUtilityClass 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. 3 927
CommentRequired Public method and constructor comments are required 3 1117
CommentRequired Public method and constructor comments are required 3 1926

fr/paris/lutece/plugins/oauth2/service/TokenService.java

Rule Violation Priority Line
CommentDefaultAccessModifier To avoid mistakes add a comment at the beginning of the _defaultClientConfig field if you want a default access modifier 3 60
DefaultPackage Use explicit scoping instead of the default package private level 3 60
CommentDefaultAccessModifier To avoid mistakes add a comment at the beginning of the _defaultauthServerConfig field if you want a default access modifier 3 61
DefaultPackage Use explicit scoping instead of the default package private level 3 61
LoggerIsNotStaticFinal The Logger variable declaration does not contain the static and final modifiers 2 63
AvoidReassigningParameters Avoid reassigning parameters such as 'strRedirectUri' 2 125
UseObjectForClearerAPI Rather than using a lot of String arguments, consider using a container object for those values. 3 125126
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 134
GuardLogStatement Logger calls should be surrounded by log level guards. 2 156
GuardLogStatement Logger calls should be surrounded by log level guards. 2 159
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 203
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 204
GuardLogStatement Logger calls should be surrounded by log level guards. 2 212
EmptyCatchBlock Avoid empty catch blocks 3 222225
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 264
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 265
GuardLogStatement Logger calls should be surrounded by log level guards. 2 274
IdenticalCatchBranches 'catch' branch identical to 'IOException' branch 3 289293
EmptyCatchBlock Avoid empty catch blocks 3 294297
DefaultPackage Use explicit scoping instead of the default package private level 3 342345
CommentDefaultAccessModifier To avoid mistakes add a comment at the beginning of the parseToken method if you want a default access modifier 3 342345
CommentRequired Public method and constructor comments are required 3 347356
NonThreadSafeSingleton Singleton is not thread safe 3 349353

fr/paris/lutece/plugins/oauth2/web/CallbackHandler.java

Rule Violation Priority Line
ExcessiveImports A high number of imports can indicate a high degree of coupling within an object. 3 34704
UnusedImports Avoid unused imports such as 'java.util.ArrayList' 4 43
UnusedImports Avoid unused imports such as 'java.util.Arrays' 4 44
UnusedImports Avoid unused imports such as 'java.util.Iterator' 4 45
UnusedImports Avoid unused imports such as 'java.util.List' 4 46
GodClass Possible God Class (WMC=64, ATFD=68, TCC=7.661%) 3 73704
TooManyMethods This class has too many methods, consider refactoring it. 3 74704
LoggerIsNotStaticFinal The Logger variable declaration does not contain the static and final modifiers 2 77
DefaultPackage Use explicit scoping instead of the default package private level 3 126144
CommentDefaultAccessModifier To avoid mistakes add a comment at the beginning of the handle method if you want a default access modifier 3 126144
ConfusingTernary Avoid if (x != y) ..; else ..; 3 131143
ConfusingTernary Avoid if (x != y) ..; else ..; 3 136143
ConfusingTernary Avoid if (x != y) ..; else ..; 3 160180
AvoidDuplicateLiterals The String literal "UTF-8" appears 4 times in this file; the first occurrence is on line 202 3 202
GuardLogStatement Logger calls should be surrounded by log level guards. 2 227
IdenticalCatchBranches 'catch' branch identical to 'IOException' branch 3 274279
IdenticalCatchBranches 'catch' branch identical to 'IOException' branch 3 280285
LocalVariableNamingConventions The local variable name 'StrCodeVerifier' doesn't match '[a-z][a-zA-Z0-9]*' 1 367
UnusedPrivateMethod Avoid unused private methods such as 'getStoredCodeChallenge(HttpSession)'. 3 400
GuardLogStatement Logger calls should be surrounded by log level guards. 2 472
FormalParameterNamingConventions The method parameter name '_handlerName' doesn't match '[a-z][a-zA-Z0-9]*' 1 554
FormalParameterNamingConventions The method parameter name '_bDefault' doesn't match '[a-z][a-zA-Z0-9]*' 1 592
ForLoopCanBeForeach This for loop can be replaced by a foreach loop 3 605622
UseIndexOfChar String.indexOf(char) is faster than String.indexOf(String). 3 610

fr/paris/lutece/plugins/oauth2/web/Constants.java

Rule Violation Priority Line
ClassNamingConventions The utility class name 'Constants' doesn't match '[A-Z][a-zA-Z0-9]+(Utils?|Helper|Home|Service)' 1 3987

fr/paris/lutece/plugins/oauth2/web/OAuthCallbackServlet.java

Rule Violation Priority Line
UnusedImports Avoid unused imports such as 'java.util.List' 4 37
UnusedImports Avoid unused imports such as 'fr.paris.lutece.portal.service.spring.SpringContextService' 4 47

fr/paris/lutece/plugins/oauth2/web/OAuthLogoutServlet.java

Rule Violation Priority Line
LoggerIsNotStaticFinal The Logger variable declaration does not contain the static and final modifiers 2 54
ConfusingTernary Avoid if (x != y) ..; else ..; 3 6776
GuardLogStatement Logger calls should be surrounded by log level guards. 2 71