The following document contains the results of PMD 6.13.0.
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 |
Rule | Violation | Line |
---|---|---|
FormalParameterNamingConventions | The method parameter name '_bEnableJwtParser' doesn't match '[a-z][a-zA-Z0-9]*' | 168 |
Rule | Violation | Line |
---|---|---|
FormalParameterNamingConventions | The method parameter name '_bDefault' doesn't match '[a-z][a-zA-Z0-9]*' | 283 |
Rule | Violation | Line |
---|---|---|
FormalParameterNamingConventions | The method parameter name '_bDefault' doesn't match '[a-z][a-zA-Z0-9]*' | 178 |
Rule | Violation | Line |
---|---|---|
ClassWithOnlyPrivateConstructorsShouldBeFinal | A class which only has private constructors should be final | 51–110 |
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 |
Rule | Violation | Line |
---|---|---|
ClassNamingConventions | The utility class name 'Constants' doesn't match '[A-Z][a-zA-Z0-9]+(Utils?|Helper|Home|Service)' | 39–87 |
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 |
Rule | Violation | Line |
---|---|---|
GuardLogStatement | Logger calls should be surrounded by log level guards. | 57 |
Rule | Violation | Line |
---|---|---|
GuardLogStatement | Logger calls should be surrounded by log level guards. | 89 |
Rule | Violation | Line |
---|---|---|
GuardLogStatement | Logger calls should be surrounded by log level guards. | 272 |
Rule | Violation | Line |
---|---|---|
LoggerIsNotStaticFinal | The Logger variable declaration does not contain the static and final modifiers | 55 |
Rule | Violation | Line |
---|---|---|
LoggerIsNotStaticFinal | The Logger variable declaration does not contain the static and final modifiers | 58 |
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 |
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 |
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 |
Rule | Violation | Line |
---|---|---|
CommentRequired | Public method and constructor comments are required | 125–127 |
CommentRequired | Public method and constructor comments are required | 129–131 |
CommentRequired | Public method and constructor comments are required | 133–135 |
CommentRequired | Public method and constructor comments are required | 137–139 |
Rule | Violation | Line |
---|---|---|
InsufficientStringBufferDeclaration | StringBuffer constructor is initialized with size 16, but has at least 103 characters appended. | 224 |
Rule | Violation | Line |
---|---|---|
InsufficientStringBufferDeclaration | StringBuffer constructor is initialized with size 16, but has at least 86 characters appended. | 187 |
Rule | Violation | Line |
---|---|---|
CommentRequired | Public method and constructor comments are required | 263–276 |
MissingOverride | The method 'handleError(HttpServletRequest, HttpServletResponse, String)' is missing an @Override annotation. | 263–276 |
MissingOverride | The method 'isDefault()' is missing an @Override annotation. | 278–281 |
CommentRequired | Public method and constructor comments are required | 278–281 |
CommentRequired | Public method and constructor comments are required | 283–286 |
MissingOverride | The method 'setDefault(boolean)' is missing an @Override annotation. | 283–286 |
Rule | Violation | Line |
---|---|---|
EmptyCatchBlock | Avoid empty catch blocks | 63–66 |
Rule | Violation | Line |
---|---|---|
CyclomaticComplexity | The method 'parseJWT(Token, AuthClientConf, AuthServerConf, String, Logger)' has a cyclomatic complexity of 11. | 62–114 |
IdenticalCatchBranches | 'catch' branch identical to 'SignatureException' branch | 97–100 |
IdenticalCatchBranches | 'catch' branch identical to 'SignatureException' branch | 101–104 |
IdenticalCatchBranches | 'catch' branch identical to 'SignatureException' branch | 105–108 |
IdenticalCatchBranches | 'catch' branch identical to 'SignatureException' branch | 109–112 |
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. | 70–275 |
NPathComplexity | The method 'parseJWT(Token, AuthClientConf, AuthServerConf, String, Logger)' has an NPath complexity of 1119744 | 70–275 |
NcssCount | The method 'parseJWT(Token, AuthClientConf, AuthServerConf, String, Logger)' has a NCSS line count of 79. | 70–275 |
ExcessiveMethodLength | Avoid really long methods. | 70–275 |
PrematureDeclaration | Avoid declaring a variable if it is unreferenced before a possible exit point. | 74 |
CollapsibleIfStatements | These nested if statements could be combined | 103–106 |
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 |
Rule | Violation | Line |
---|---|---|
ImmutableField | Private field '_strAccessToken' could be made final; it is only initialized in the declaration or constructor. | 50 |
Rule | Violation | Line |
---|---|---|
UnusedPrivateField | Avoid unused private fields such as '_logger'. | 55 |
AvoidSynchronizedAtMethodLevel | Use block level rather than method level synchronization | 67–75 |
UseCollectionIsEmpty | Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() | 91 |
Rule | Violation | Line |
---|---|---|
AvoidSynchronizedAtMethodLevel | Use block level rather than method level synchronization | 70–79 |
ConfusingTernary | Avoid if (x != y) ..; else ..; | 120–129 |
ConfusingTernary | Avoid if (x != y) ..; else ..; | 130–141 |
Rule | Violation | Line |
---|---|---|
ShortVariable | Avoid variables with short names like t | 74 |
Rule | Violation | Line |
---|---|---|
CommentRequired | Header comments are required | 38–59 |
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. | 39–59 |
Rule | Violation | Line |
---|---|---|
CommentRequired | Header comments are required | 9–27 |
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. | 9–27 |
CommentRequired | Public method and constructor comments are required | 11–17 |
CommentRequired | Public method and constructor comments are required | 19–26 |
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. | 125–126 |
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 | 222–225 |
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 | 289–293 |
EmptyCatchBlock | Avoid empty catch blocks | 294–297 |
DefaultPackage | Use explicit scoping instead of the default package private level | 342–345 |
CommentDefaultAccessModifier | To avoid mistakes add a comment at the beginning of the parseToken method if you want a default access modifier | 342–345 |
CommentRequired | Public method and constructor comments are required | 347–356 |
NonThreadSafeSingleton | Singleton is not thread safe | 349–353 |
Rule | Violation | Line |
---|---|---|
ExcessiveImports | A high number of imports can indicate a high degree of coupling within an object. | 34–704 |
GodClass | Possible God Class (WMC=64, ATFD=68, TCC=7.661%) | 73–704 |
TooManyMethods | This class has too many methods, consider refactoring it. | 74–704 |
DefaultPackage | Use explicit scoping instead of the default package private level | 126–144 |
CommentDefaultAccessModifier | To avoid mistakes add a comment at the beginning of the handle method if you want a default access modifier | 126–144 |
ConfusingTernary | Avoid if (x != y) ..; else ..; | 131–143 |
ConfusingTernary | Avoid if (x != y) ..; else ..; | 136–143 |
ConfusingTernary | Avoid if (x != y) ..; else ..; | 160–180 |
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 | 274–279 |
IdenticalCatchBranches | 'catch' branch identical to 'IOException' branch | 280–285 |
UnusedPrivateMethod | Avoid unused private methods such as 'getStoredCodeChallenge(HttpSession)'. | 400 |
ForLoopCanBeForeach | This for loop can be replaced by a foreach loop | 605–622 |
UseIndexOfChar | String.indexOf(char) is faster than String.indexOf(String). | 610 |
Rule | Violation | Line |
---|---|---|
ConfusingTernary | Avoid if (x != y) ..; else ..; | 67–76 |
Rule | Violation | Line |
---|---|---|
UnusedImports | Avoid unused imports such as 'fr.paris.lutece.util.url.UrlItem' | 44 |
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 |
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 |
Rule | Violation | Priority | Line |
---|---|---|---|
CommentRequired | Public method and constructor comments are required | 3 | 125–127 |
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 | 129–131 |
CommentRequired | Public method and constructor comments are required | 3 | 133–135 |
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 | 137–139 |
Rule | Violation | Priority | Line |
---|---|---|---|
FormalParameterNamingConventions | The method parameter name '_bEnableJwtParser' doesn't match '[a-z][a-zA-Z0-9]*' | 1 | 168 |
Rule | Violation | Priority | Line |
---|---|---|---|
InsufficientStringBufferDeclaration | StringBuffer constructor is initialized with size 16, but has at least 103 characters appended. | 3 | 224 |
Rule | Violation | Priority | Line |
---|---|---|---|
InsufficientStringBufferDeclaration | StringBuffer constructor is initialized with size 16, but has at least 86 characters appended. | 3 | 187 |
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 | 263–276 |
MissingOverride | The method 'handleError(HttpServletRequest, HttpServletResponse, String)' is missing an @Override annotation. | 3 | 263–276 |
MissingOverride | The method 'isDefault()' is missing an @Override annotation. | 3 | 278–281 |
CommentRequired | Public method and constructor comments are required | 3 | 278–281 |
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 | 283–286 |
MissingOverride | The method 'setDefault(boolean)' is missing an @Override annotation. | 3 | 283–286 |
Rule | Violation | Priority | Line |
---|---|---|---|
FormalParameterNamingConventions | The method parameter name '_bDefault' doesn't match '[a-z][a-zA-Z0-9]*' | 1 | 178 |
Rule | Violation | Priority | Line |
---|---|---|---|
GuardLogStatement | Logger calls should be surrounded by log level guards. | 2 | 57 |
EmptyCatchBlock | Avoid empty catch blocks | 3 | 63–66 |
Rule | Violation | Priority | Line |
---|---|---|---|
CyclomaticComplexity | The method 'parseJWT(Token, AuthClientConf, AuthServerConf, String, Logger)' has a cyclomatic complexity of 11. | 3 | 62–114 |
GuardLogStatement | Logger calls should be surrounded by log level guards. | 2 | 89 |
IdenticalCatchBranches | 'catch' branch identical to 'SignatureException' branch | 3 | 97–100 |
IdenticalCatchBranches | 'catch' branch identical to 'SignatureException' branch | 3 | 101–104 |
IdenticalCatchBranches | 'catch' branch identical to 'SignatureException' branch | 3 | 105–108 |
IdenticalCatchBranches | 'catch' branch identical to 'SignatureException' branch | 3 | 109–112 |
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 | 70–275 |
NPathComplexity | The method 'parseJWT(Token, AuthClientConf, AuthServerConf, String, Logger)' has an NPath complexity of 1119744 | 3 | 70–275 |
NcssCount | The method 'parseJWT(Token, AuthClientConf, AuthServerConf, String, Logger)' has a NCSS line count of 79. | 3 | 70–275 |
ExcessiveMethodLength | Avoid really long methods. | 3 | 70–275 |
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 | 103–106 |
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 |
Rule | Violation | Priority | Line |
---|---|---|---|
ImmutableField | Private field '_strAccessToken' could be made final; it is only initialized in the declaration or constructor. | 3 | 50 |
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 | 51–110 |
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 | 67–75 |
UseCollectionIsEmpty | Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() | 3 | 91 |
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 | 70–79 |
ConfusingTernary | Avoid if (x != y) ..; else ..; | 3 | 120–129 |
ConfusingTernary | Avoid if (x != y) ..; else ..; | 3 | 130–141 |
Rule | Violation | Priority | Line |
---|---|---|---|
ShortVariable | Avoid variables with short names like t | 3 | 74 |
Rule | Violation | Priority | Line |
---|---|---|---|
CommentRequired | Header comments are required | 3 | 38–59 |
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 | 39–59 |
Rule | Violation | Priority | Line |
---|---|---|---|
CommentRequired | Header comments are required | 3 | 9–27 |
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 | 9–27 |
CommentRequired | Public method and constructor comments are required | 3 | 11–17 |
CommentRequired | Public method and constructor comments are required | 3 | 19–26 |
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 | 125–126 |
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 | 222–225 |
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 | 289–293 |
EmptyCatchBlock | Avoid empty catch blocks | 3 | 294–297 |
DefaultPackage | Use explicit scoping instead of the default package private level | 3 | 342–345 |
CommentDefaultAccessModifier | To avoid mistakes add a comment at the beginning of the parseToken method if you want a default access modifier | 3 | 342–345 |
CommentRequired | Public method and constructor comments are required | 3 | 347–356 |
NonThreadSafeSingleton | Singleton is not thread safe | 3 | 349–353 |
Rule | Violation | Priority | Line |
---|---|---|---|
ExcessiveImports | A high number of imports can indicate a high degree of coupling within an object. | 3 | 34–704 |
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 | 73–704 |
TooManyMethods | This class has too many methods, consider refactoring it. | 3 | 74–704 |
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 | 126–144 |
CommentDefaultAccessModifier | To avoid mistakes add a comment at the beginning of the handle method if you want a default access modifier | 3 | 126–144 |
ConfusingTernary | Avoid if (x != y) ..; else ..; | 3 | 131–143 |
ConfusingTernary | Avoid if (x != y) ..; else ..; | 3 | 136–143 |
ConfusingTernary | Avoid if (x != y) ..; else ..; | 3 | 160–180 |
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 | 274–279 |
IdenticalCatchBranches | 'catch' branch identical to 'IOException' branch | 3 | 280–285 |
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 | 605–622 |
UseIndexOfChar | String.indexOf(char) is faster than String.indexOf(String). | 3 | 610 |
Rule | Violation | Priority | Line |
---|---|---|---|
ClassNamingConventions | The utility class name 'Constants' doesn't match '[A-Z][a-zA-Z0-9]+(Utils?|Helper|Home|Service)' | 1 | 39–87 |
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 |
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 | 67–76 |
GuardLogStatement | Logger calls should be surrounded by log level guards. | 2 | 71 |