Fork me on GitHub

Résultats PMD

Le document suivant contient les résultats de PMD 6.13.0.

Violations By Priority

Priority 1

fr/paris/lutece/plugins/helpdesk/service/helpdesksearch/HelpdeskSearchItem.java

Rule Violation Ligne
ConstructorCallsOverridableMethod Overridable method 'setSubjectId' called during object construction 60

fr/paris/lutece/plugins/helpdesk/web/HelpdeskJspBean.java

Rule Violation Ligne
AvoidThrowingRawExceptionTypes Avoid throwing raw exception types. 2648

Priority 2

fr/paris/lutece/plugins/helpdesk/web/HelpdeskJspBean.java

Rule Violation Ligne
GuardLogStatement Logger calls should be surrounded by log level guards. 2493
GuardLogStatement Logger calls should be surrounded by log level guards. 2551
GuardLogStatement Logger calls should be surrounded by log level guards. 2568

Priority 3

fr/paris/lutece/plugins/helpdesk/business/AbstractSubjectHome.java

Rule Violation Ligne
TooManyMethods This class has too many methods, consider refactoring it. 52–399

fr/paris/lutece/plugins/helpdesk/business/Faq.java

Rule Violation Ligne
UncommentedEmptyConstructor Document empty constructor 62–64
UnnecessaryConstructor Avoid unnecessary constructors - the compiler will generate these for you 62–64
NonThreadSafeSingleton Singleton is not thread safe 72–76
NonThreadSafeSingleton Singleton is not thread safe 78–82
MissingOverride The method 'getWorkgroup()' is missing an @Override annotation. 201–204

fr/paris/lutece/plugins/helpdesk/business/FaqDAO.java

Rule Violation Ligne
TooManyMethods This class has too many methods, consider refactoring it. 48–353
MissingOverride The method 'newPrimaryKey(Plugin)' is missing an @Override annotation. 71–89
MissingOverride The method 'insert(Faq, Plugin)' is missing an @Override annotation. 97–111
AvoidSynchronizedAtMethodLevel Use block level rather than method level synchronization 97–111
MissingOverride The method 'delete(int, Plugin)' is missing an @Override annotation. 119–127
MissingOverride The method 'load(int, Plugin)' is missing an @Override annotation. 136–156
MissingOverride The method 'store(Faq, Plugin)' is missing an @Override annotation. 164–176
MissingOverride The method 'findAll(Plugin)' is missing an @Override annotation. 183–202
MissingOverride The method 'findReferenceList(Plugin)' is missing an @Override annotation. 209–223
MissingOverride The method 'findAuthorizedFaq(String, Plugin)' is missing an @Override annotation. 231–234
MissingOverride The method 'findByWorkgroup(String, Plugin)' is missing an @Override annotation. 242–245
ShortVariable Avoid variables with short names like sB 257
ShortVariable Avoid variables with short names like i 265
UnusedLocalVariable Avoid unused local variables such as 'strRoleKey'. 267
AssignmentInOperand Avoid assignments in operands 269
AvoidLiteralsInIfCondition Avoid using Literals in Conditional Statements 269
MissingOverride The method 'findBySubjectId(int, Plugin)' is missing an @Override annotation. 317–332
MissingOverride The method 'findListFaq(Plugin)' is missing an @Override annotation. 339–352

fr/paris/lutece/plugins/helpdesk/business/FaqHome.java

Rule Violation Ligne
TooManyMethods This class has too many methods, consider refactoring it. 54–241
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. 54–241
CollapsibleIfStatements These nested if statements could be combined 120–135
AvoidArrayLoops System.arraycopy is more efficient 193–196

fr/paris/lutece/plugins/helpdesk/business/FaqRoleRemovalListener.java

Rule Violation Ligne
MissingOverride The method 'canBeRemoved(String)' is missing an @Override annotation. 57–73
SimplifyBooleanReturns Avoid unnecessary if..then..else statements when returning booleans 67–70
MissingOverride The method 'getRemovalRefusedMessage(String, Locale)' is missing an @Override annotation. 81–85

fr/paris/lutece/plugins/helpdesk/business/FaqWorkgroupRemovalListener.java

Rule Violation Ligne
MissingOverride The method 'canBeRemoved(String)' is missing an @Override annotation. 57–73
SimplifyBooleanReturns Avoid unnecessary if..then..else statements when returning booleans 67–70
UseCollectionIsEmpty Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 67
MissingOverride The method 'getRemovalRefusedMessage(String, Locale)' is missing an @Override annotation. 81–85

fr/paris/lutece/plugins/helpdesk/business/IAbstractSubjectDAO.java

Rule Violation Ligne
TooManyMethods This class has too many methods, consider refactoring it. 46–159

fr/paris/lutece/plugins/helpdesk/business/IFaqDAO.java

Rule Violation Ligne
TooManyMethods This class has too many methods, consider refactoring it. 46–129

fr/paris/lutece/plugins/helpdesk/business/IQuestionAnswerDAO.java

Rule Violation Ligne
TooManyMethods This class has too many methods, consider refactoring it. 46–135

fr/paris/lutece/plugins/helpdesk/business/QuestionAnswer.java

Rule Violation Ligne
UncommentedEmptyConstructor Document empty constructor 59–61
UnnecessaryConstructor Avoid unnecessary constructors - the compiler will generate these for you 59–61
AvoidLiteralsInIfCondition Avoid using Literals in Conditional Statements 160

fr/paris/lutece/plugins/helpdesk/business/QuestionAnswerDAO.java

Rule Violation Ligne
TooManyMethods This class has too many methods, consider refactoring it. 52–399
MissingOverride The method 'newPrimaryKey(Plugin)' is missing an @Override annotation. 74–92
MissingOverride The method 'insert(QuestionAnswer, Plugin)' is missing an @Override annotation. 100–125
MissingOverride The method 'delete(int, Plugin)' is missing an @Override annotation. 133–141
MissingOverride The method 'deleteAll(Plugin)' is missing an @Override annotation. 148–154
MissingOverride The method 'deleteBySubject(int, Plugin)' is missing an @Override annotation. 162–170
MissingOverride The method 'load(int, Plugin)' is missing an @Override annotation. 179–201
MissingOverride The method 'store(QuestionAnswer, Plugin)' is missing an @Override annotation. 209–233
MissingOverride The method 'findAll(Plugin)' is missing an @Override annotation. 241–262
MissingOverride The method 'findByKeywords(String, Plugin)' is missing an @Override annotation. 271–321
ShortVariable Avoid variables with short names like st 277
InsufficientStringBufferDeclaration StringBuffer constructor is initialized with size 16, but has at least 66 characters appended. 280
ShortVariable Avoid variables with short names like sB 280
MissingOverride The method 'findByIdSubject(int, Plugin)' is missing an @Override annotation. 329–352
MissingOverride The method 'countbySubject(int, Plugin)' is missing an @Override annotation. 360–375
MissingOverride The method 'getMaxOrder(int, Plugin)' is missing an @Override annotation. 383–398

fr/paris/lutece/plugins/helpdesk/business/QuestionAnswerHome.java

Rule Violation Ligne
TooManyMethods This class has too many methods, consider refactoring it. 53–346

fr/paris/lutece/plugins/helpdesk/business/Subject.java

Rule Violation Ligne
UnnecessaryConstructor Avoid unnecessary constructors - the compiler will generate these for you 52–54
CallSuperInConstructor It is a good practice to call super() in a constructor 52–54
UncommentedEmptyConstructor Document empty constructor 52–54
MissingOverride The method 'getParent(Plugin)' is missing an @Override annotation. 79–82
MissingOverride The method 'getChilds(Plugin)' is missing an @Override annotation. 89–92

fr/paris/lutece/plugins/helpdesk/business/SubjectDAO.java

Rule Violation Ligne
TooManyMethods This class has too many methods, consider refactoring it. 49–485
MissingOverride The method 'newPrimaryKey(Plugin)' is missing an @Override annotation. 78–96
MissingOverride The method 'insert(AbstractSubject, Plugin)' is missing an @Override annotation. 104–118
AvoidSynchronizedAtMethodLevel Use block level rather than method level synchronization 104–118
MissingOverride The method 'delete(int, Plugin)' is missing an @Override annotation. 126–134
MissingOverride The method 'load(int, Plugin)' is missing an @Override annotation. 143–165
MissingOverride The method 'store(AbstractSubject, Plugin)' is missing an @Override annotation. 173–185
MissingOverride The method 'findAll(Plugin)' is missing an @Override annotation. 192–212
MissingOverride The method 'findByIdParent(int, Plugin)' is missing an @Override annotation. 241–262
MissingOverride The method 'findByIdFaq(int, Plugin)' is missing an @Override annotation. 270–291
MissingOverride The method 'findQuestions(int, Plugin)' is missing an @Override annotation. 299–322
MissingOverride The method 'countQuestion(int, Plugin)' is missing an @Override annotation. 330–345
MissingOverride The method 'getMaxOrder(int, Plugin)' is missing an @Override annotation. 353–368
MissingOverride The method 'findByOrder(int, int, Plugin)' is missing an @Override annotation. 377–400
MissingOverride The method 'findByFaqOrder(int, int, Plugin)' is missing an @Override annotation. 409–432
AvoidSynchronizedAtMethodLevel Use block level rather than method level synchronization 441–450
MissingOverride The method 'insertLinkToFaq(int, int, Plugin)' is missing an @Override annotation. 441–450
MissingOverride The method 'deleteLinkToFaq(int, int, Plugin)' is missing an @Override annotation. 459–468
AvoidSynchronizedAtMethodLevel Use block level rather than method level synchronization 459–468
AvoidSynchronizedAtMethodLevel Use block level rather than method level synchronization 476–484
MissingOverride The method 'deleteAllLinksToFaq(int, Plugin)' is missing an @Override annotation. 476–484

fr/paris/lutece/plugins/helpdesk/business/SubjectHome.java

Rule Violation Ligne
AssignmentToNonFinalStatic Possible unsafe assignment to a non-final static field in a constructor. 52
CallSuperInConstructor It is a good practice to call super() in a constructor 57–63
NonThreadSafeSingleton Singleton is not thread safe 72–75
MissingOverride The method 'getDAO()' is missing an @Override annotation. 106–109

fr/paris/lutece/plugins/helpdesk/business/Theme.java

Rule Violation Ligne
CallSuperInConstructor It is a good practice to call super() in a constructor 54–56
UncommentedEmptyConstructor Document empty constructor 54–56
UnnecessaryConstructor Avoid unnecessary constructors - the compiler will generate these for you 54–56
NonThreadSafeSingleton Singleton is not thread safe 64–68
MissingOverride The method 'getParent(Plugin)' is missing an @Override annotation. 94–97
MissingOverride The method 'getChilds(Plugin)' is missing an @Override annotation. 104–107

fr/paris/lutece/plugins/helpdesk/business/ThemeDAO.java

Rule Violation Ligne
TooManyMethods This class has too many methods, consider refactoring it. 48–447
MissingOverride The method 'newPrimaryKey(Plugin)' is missing an @Override annotation. 76–94
MissingOverride The method 'insert(AbstractSubject, Plugin)' is missing an @Override annotation. 102–117
AvoidSynchronizedAtMethodLevel Use block level rather than method level synchronization 102–117
MissingOverride The method 'delete(int, Plugin)' is missing an @Override annotation. 125–133
MissingOverride The method 'load(int, Plugin)' is missing an @Override annotation. 142–165
MissingOverride The method 'store(AbstractSubject, Plugin)' is missing an @Override annotation. 173–186
MissingOverride The method 'findAll(Plugin)' is missing an @Override annotation. 193–214
MissingOverride The method 'findByIdParent(int, Plugin)' is missing an @Override annotation. 222–245
MissingOverride The method 'findByIdFaq(int, Plugin)' is missing an @Override annotation. 253–275
MissingOverride The method 'findQuestions(int, Plugin)' is missing an @Override annotation. 283–309
MissingOverride The method 'getMaxOrder(int, Plugin)' is missing an @Override annotation. 317–332
MissingOverride The method 'findByOrder(int, int, Plugin)' is missing an @Override annotation. 341–363
MissingOverride The method 'findByFaqOrder(int, int, Plugin)' is missing an @Override annotation. 372–394
MissingOverride The method 'insertLinkToFaq(int, int, Plugin)' is missing an @Override annotation. 403–412
AvoidSynchronizedAtMethodLevel Use block level rather than method level synchronization 403–412
AvoidSynchronizedAtMethodLevel Use block level rather than method level synchronization 421–430
MissingOverride The method 'deleteLinkToFaq(int, int, Plugin)' is missing an @Override annotation. 421–430
AvoidSynchronizedAtMethodLevel Use block level rather than method level synchronization 438–446
MissingOverride The method 'deleteAllLinksToFaq(int, Plugin)' is missing an @Override annotation. 438–446

fr/paris/lutece/plugins/helpdesk/business/ThemeHome.java

Rule Violation Ligne
AssignmentToNonFinalStatic Possible unsafe assignment to a non-final static field in a constructor. 57
CallSuperInConstructor It is a good practice to call super() in a constructor 62–68
NonThreadSafeSingleton Singleton is not thread safe 77–80
MissingOverride The method 'getDAO()' is missing an @Override annotation. 137–140

fr/paris/lutece/plugins/helpdesk/business/ThemeMailingListRemovalListener.java

Rule Violation Ligne
MissingOverride The method 'canBeRemoved(String)' is missing an @Override annotation. 57–80
ShortVariable Avoid variables with short names like id 57
ShortVariable Avoid variables with short names like id 88
MissingOverride The method 'getRemovalRefusedMessage(String, Locale)' is missing an @Override annotation. 88–92

fr/paris/lutece/plugins/helpdesk/business/VisitorQuestion.java

Rule Violation Ligne
UncommentedEmptyConstructor Document empty constructor 55–57
UnnecessaryConstructor Avoid unnecessary constructors - the compiler will generate these for you 55–57

fr/paris/lutece/plugins/helpdesk/business/VisitorQuestionDAO.java

Rule Violation Ligne
DefaultPackage Use explicit scoping instead of the default package private level 75–78
CommentDefaultAccessModifier To avoid mistakes add a comment at the beginning of the getInstance method if you want a default access modifier 75–78
MissingOverride The method 'newPrimaryKey(Plugin)' is missing an @Override annotation. 89–107
AvoidSynchronizedAtMethodLevel Use block level rather than method level synchronization 115–133
MissingOverride The method 'insert(VisitorQuestion, Plugin)' is missing an @Override annotation. 115–133
MissingOverride The method 'delete(int, Plugin)' is missing an @Override annotation. 141–149
MissingOverride The method 'load(int, Plugin)' is missing an @Override annotation. 158–183
MissingOverride The method 'store(VisitorQuestion, Plugin)' is missing an @Override annotation. 191–206
MissingOverride The method 'findAll(Plugin)' is missing an @Override annotation. 213–237
MissingOverride The method 'findByUser(int, Plugin)' is missing an @Override annotation. 245–270
MissingOverride The method 'findByTheme(int, Plugin)' is missing an @Override annotation. 278–303
MissingOverride The method 'findArchivedQuestionsByTheme(int, Plugin)' is missing an @Override annotation. 311–337

fr/paris/lutece/plugins/helpdesk/service/FaqResourceIdService.java

Rule Violation Ligne
MissingOverride The method 'register()' is missing an @Override annotation. 90–137
ShortVariable Avoid variables with short names like rt 92
ShortVariable Avoid variables with short names like p 97
MissingOverride The method 'getResourceIdList(Locale)' is missing an @Override annotation. 144–147
MissingOverride The method 'getTitle(String, Locale)' is missing an @Override annotation. 155–160

fr/paris/lutece/plugins/helpdesk/service/HelpdeskPlugin.java

Rule Violation Ligne
MissingOverride The method 'init()' is missing an @Override annotation. 49–53

fr/paris/lutece/plugins/helpdesk/service/helpdesksearch/HelpdeskLuceneSearchEngine.java

Rule Violation Ligne
ExcessiveImports A high number of imports can indicate a high degree of coupling within an object. 34–325
NPathComplexity The method 'getSearchResults(int, String, Date, Date, Subject, boolean, HttpServletRequest)' has an NPath complexity of 362 97–214
MissingOverride The method 'getSearchResults(int, String, Date, Date, Subject, boolean, HttpServletRequest)' is missing an @Override annotation. 97–214
CyclomaticComplexity The method 'getSearchResults(int, String, Date, Date, Subject, boolean, HttpServletRequest)' has a cyclomatic complexity of 13. 97–214
ExcessiveMethodLength Avoid really long methods. 97–214
NcssCount The method 'getSearchResults(int, String, Date, Date, Subject, boolean, HttpServletRequest)' has a NCSS line count of 65. 97–214
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 100
ShortVariable Avoid variables with short names like ir 105
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 109
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 110
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 111
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 155
UseStringBufferForStringAppends Prefer StringBuilder (non-synchronized) or StringBuffer (synchronized) over += for concatenating strings 163
UseStringBufferForStringAppends Prefer StringBuilder (non-synchronized) or StringBuffer (synchronized) over += for concatenating strings 166
OptimizableToArrayCall This call to Collection.toArray() may be optimizable 184
OptimizableToArrayCall This call to Collection.toArray() may be optimizable 185
OptimizableToArrayCall This call to Collection.toArray() may be optimizable 186
ForLoopCanBeForeach This for loop can be replaced by a foreach loop 200–206
ShortVariable Avoid variables with short names like si 204
AvoidCatchingGenericException Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block 208
ConfusingTernary Avoid if (x != y) ..; else ..; 233–255
ConfusingTernary Avoid if (x != y) ..; else ..; 237–250
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 280
LinguisticNaming Linguistics Antipattern - The getter 'getListSubjects' should not return void linguistically 313–324

fr/paris/lutece/plugins/helpdesk/service/helpdesksearch/HelpdeskSearchService.java

Rule Violation Ligne
NonThreadSafeSingleton Singleton is not thread safe 72–75
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 96

fr/paris/lutece/plugins/helpdesk/service/search/HelpdeskIndexer.java

Rule Violation Ligne
ExcessiveImports A high number of imports can indicate a high degree of coupling within an object. 34–466
MissingOverride The method 'getDescription()' is missing an @Override annotation. 99–102
MissingOverride The method 'indexDocuments()' is missing an @Override annotation. 111–122
AvoidCatchingGenericException Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block 148
AvoidCatchingGenericException Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block 175
MissingOverride The method 'getDocuments(String)' is missing an @Override annotation. 204–261
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 207
AvoidDeeplyNestedIfStmts Deeply nested if..then statements are hard to read 243–255
ShortVariable Avoid variables with short names like ft 282
PreserveStackTrace New exception is thrown in catch block, original stack trace may be lost 321
IdenticalCatchBranches 'catch' branch identical to 'SAXException' branch 323–326
PreserveStackTrace New exception is thrown in catch block, original stack trace may be lost 325
ShortVariable Avoid variables with short names like sb 330
ShortVariable Avoid variables with short names like ft 364
UnusedFormalParameter Avoid unused method parameters such as 'plugin'. 401
ConsecutiveAppendsShouldReuse StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 405
ConsecutiveAppendsShouldReuse StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 406
MissingOverride The method 'getName()' is missing an @Override annotation. 416–419
MissingOverride The method 'getVersion()' is missing an @Override annotation. 425–428
MissingOverride The method 'isEnable()' is missing an @Override annotation. 434–447
MissingOverride The method 'getListType()' is missing an @Override annotation. 452–457
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 454
MissingOverride The method 'getSpecificSearchAppUrl()' is missing an @Override annotation. 462–465

fr/paris/lutece/plugins/helpdesk/utils/HelpdeskIndexerUtils.java

Rule Violation Ligne
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. 13–44

fr/paris/lutece/plugins/helpdesk/web/HelpdeskApp.java

Rule Violation Ligne
ExcessiveImports A high number of imports can indicate a high degree of coupling within an object. 34–569
UnnecessaryConstructor Avoid unnecessary constructors - the compiler will generate these for you 165–167
UncommentedEmptyConstructor Document empty constructor 165–167
MissingOverride The method 'getPage(HttpServletRequest, int, Plugin)' is missing an @Override annotation. 178–237
CyclomaticComplexity The method 'getPage(HttpServletRequest, int, Plugin)' has a cyclomatic complexity of 12. 178–237
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 183
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 248
AvoidLiteralsInIfCondition Avoid using Literals in Conditional Statements 289
UseStringBufferForStringAppends Prefer StringBuilder (non-synchronized) or StringBuffer (synchronized) over += for concatenating strings 336
CyclomaticComplexity The method 'getSubjectListSearch(HttpServletRequest, Plugin, Faq)' has a cyclomatic complexity of 13. 397–473
NPathComplexity The method 'getSubjectListSearch(HttpServletRequest, Plugin, Faq)' has an NPath complexity of 384 397–473
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 451
ShortVariable Avoid variables with short names like t 470

fr/paris/lutece/plugins/helpdesk/web/HelpdeskJspBean.java

Rule Violation Ligne
ExcessivePublicCount This class has a bunch of public methods and attributes 34–2745
ExcessiveImports A high number of imports can indicate a high degree of coupling within an object. 34–2745
MissingSerialVersionUID Classes implementing Serializable should set a serialVersionUID 98–2745
ExcessiveClassLength Avoid really long classes. 98–2745
CyclomaticComplexity The class 'HelpdeskJspBean' has a total cyclomatic complexity of 286 (highest 19). 98–2745
TooManyMethods This class has too many methods, consider refactoring it. 99–2745
UncommentedEmptyConstructor Document empty constructor 281–283
UnnecessaryConstructor Avoid unnecessary constructors - the compiler will generate these for you 281–283
CallSuperInConstructor It is a good practice to call super() in a constructor 281–283
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 292
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 292
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 292
AddEmptyString Do not add empty strings 315
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 340
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 340
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 531
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 572
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 573
UseCollectionIsEmpty Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 721
ConfusingTernary Avoid if (x != y) ..; else ..; 729
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 811
CyclomaticComplexity The method 'doCreateQuestionAnswer(HttpServletRequest)' has a cyclomatic complexity of 11. 851–925
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 854
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 854
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 864
CyclomaticComplexity The method 'doActionSelectionQuestionAnswer(HttpServletRequest)' has a cyclomatic complexity of 12. 1035–1098
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 1274
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 1323
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 1323
UseCollectionIsEmpty Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 1361
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 1366
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 1366
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 1400
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 1401
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 1423
UseStringBufferForStringAppends Prefer StringBuilder (non-synchronized) or StringBuffer (synchronized) over += for concatenating strings 1437
UseCollectionIsEmpty Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 1486
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 1551
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 1551
NPathComplexity The method 'insertQuestionAnswers(HttpServletRequest, List, Faq, boolean, Collection)' has an NPath complexity of 216 1568–1697
ExcessiveMethodLength Avoid really long methods. 1568–1697
CyclomaticComplexity The method 'insertQuestionAnswers(HttpServletRequest, List, Faq, boolean, Collection)' has a cyclomatic complexity of 19. 1568–1697
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 1588
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 1589
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 1714
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 1714
UseCollectionIsEmpty Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 1724
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 1758
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 1758
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 1759
ConfusingTernary Avoid if (x != y) ..; else ..; 1759
UseCollectionIsEmpty Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 1768
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 1807
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 1857
UseCollectionIsEmpty Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 1867
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 1902
UseCollectionIsEmpty Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 1909
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 1945
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 1945
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 1979
CyclomaticComplexity The method 'doCreateTheme(HttpServletRequest)' has a cyclomatic complexity of 10. 2014–2060
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 2024
CyclomaticComplexity The method 'doModifyTheme(HttpServletRequest)' has a cyclomatic complexity of 12. 2067–2124
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 2078
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 2088
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 2089
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 2254
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 2255
AddEmptyString Do not add empty strings 2283
UnusedFormalParameter Avoid unused method parameters such as 'faq'. 2531
UnnecessaryLocalBeforeReturn Consider simply returning the value vs storing it in local variable 'nIdOrder' 2536
PositionLiteralsFirstInComparisons Position literals first in String comparisons 2553
PositionLiteralsFirstInComparisons Position literals first in String comparisons 2570
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 2603–2604
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 2605
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 2606–2607
PositionLiteralsFirstInComparisons Position literals first in String comparisons 2620
PreserveStackTrace New exception is thrown in catch block, original stack trace may be lost 2648
NPathComplexity The method 'getAuthorizedActionCollection(Faq)' has an NPath complexity of 256 2689–2742
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 2691

fr/paris/lutece/plugins/helpdesk/web/HelpdeskSearchJspBean.java

Rule Violation Ligne
ExcessiveImports A high number of imports can indicate a high degree of coupling within an object. 34–333
MissingSerialVersionUID Classes implementing Serializable should set a serialVersionUID 75–333
NcssCount The method 'getSearch(HttpServletRequest)' has a NCSS line count of 68. 133–234
CyclomaticComplexity The method 'getSearch(HttpServletRequest)' has a cyclomatic complexity of 12. 133–234
NPathComplexity The method 'getSearch(HttpServletRequest)' has an NPath complexity of 1152 133–234
ExcessiveMethodLength Avoid really long methods. 133–234
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 140
ConfusingTernary Avoid if (x != y) ..; else ..; 153
ConfusingTernary Avoid if (x != y) ..; else ..; 157
UnusedLocalVariable Avoid unused local variables such as 'nPageIndex'. 159
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 159
ConfusingTernary Avoid if (x != y) ..; else ..; 229
ShortVariable Avoid variables with short names like os 263
UnusedFormalParameter Avoid unused method parameters such as 'request'. 283
UnusedLocalVariable Avoid unused local variables such as 'plugin'. 285
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 285
UseCollectionIsEmpty Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 287
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 290
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 294
ShortVariable Avoid variables with short names like i 314
ConfusingTernary Avoid if (x != y) ..; else ..; 319–326

Priority 4

fr/paris/lutece/plugins/helpdesk/business/Faq.java

Rule Violation Ligne
ShortClassName Avoid short class names like Faq 47–205

fr/paris/lutece/plugins/helpdesk/service/search/HelpdeskIndexer.java

Rule Violation Ligne
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.lucene.document.Document' due to existing import 'org.apache.lucene.document.Document' 143
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.lucene.document.Document' due to existing import 'org.apache.lucene.document.Document' 169
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.lucene.document.Document' due to existing import 'org.apache.lucene.document.Document' 207
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.lucene.document.Document' due to existing import 'org.apache.lucene.document.Document' 207
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.lucene.document.Document' due to existing import 'org.apache.lucene.document.Document' 237
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.lucene.document.Document' due to existing import 'org.apache.lucene.document.Document' 252
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.lucene.document.Document' due to existing import 'org.apache.lucene.document.Document' 276
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.lucene.document.Document' due to existing import 'org.apache.lucene.document.Document' 280
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.lucene.document.Document' due to existing import 'org.apache.lucene.document.Document' 280
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.lucene.document.Document' due to existing import 'org.apache.lucene.document.Document' 358
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.lucene.document.Document' due to existing import 'org.apache.lucene.document.Document' 362
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.lucene.document.Document' due to existing import 'org.apache.lucene.document.Document' 362

Fichiers

fr/paris/lutece/plugins/helpdesk/business/AbstractSubjectHome.java

Rule Violation Priority Ligne
TooManyMethods This class has too many methods, consider refactoring it. 3 52–399

fr/paris/lutece/plugins/helpdesk/business/Faq.java

Rule Violation Priority Ligne
ShortClassName Avoid short class names like Faq 4 47–205
UncommentedEmptyConstructor Document empty constructor 3 62–64
UnnecessaryConstructor Avoid unnecessary constructors - the compiler will generate these for you 3 62–64
NonThreadSafeSingleton Singleton is not thread safe 3 72–76
NonThreadSafeSingleton Singleton is not thread safe 3 78–82
MissingOverride The method 'getWorkgroup()' is missing an @Override annotation. 3 201–204

fr/paris/lutece/plugins/helpdesk/business/FaqDAO.java

Rule Violation Priority Ligne
TooManyMethods This class has too many methods, consider refactoring it. 3 48–353
MissingOverride The method 'newPrimaryKey(Plugin)' is missing an @Override annotation. 3 71–89
MissingOverride The method 'insert(Faq, Plugin)' is missing an @Override annotation. 3 97–111
AvoidSynchronizedAtMethodLevel Use block level rather than method level synchronization 3 97–111
MissingOverride The method 'delete(int, Plugin)' is missing an @Override annotation. 3 119–127
MissingOverride The method 'load(int, Plugin)' is missing an @Override annotation. 3 136–156
MissingOverride The method 'store(Faq, Plugin)' is missing an @Override annotation. 3 164–176
MissingOverride The method 'findAll(Plugin)' is missing an @Override annotation. 3 183–202
MissingOverride The method 'findReferenceList(Plugin)' is missing an @Override annotation. 3 209–223
MissingOverride The method 'findAuthorizedFaq(String, Plugin)' is missing an @Override annotation. 3 231–234
MissingOverride The method 'findByWorkgroup(String, Plugin)' is missing an @Override annotation. 3 242–245
ShortVariable Avoid variables with short names like sB 3 257
ShortVariable Avoid variables with short names like i 3 265
UnusedLocalVariable Avoid unused local variables such as 'strRoleKey'. 3 267
AssignmentInOperand Avoid assignments in operands 3 269
AvoidLiteralsInIfCondition Avoid using Literals in Conditional Statements 3 269
MissingOverride The method 'findBySubjectId(int, Plugin)' is missing an @Override annotation. 3 317–332
MissingOverride The method 'findListFaq(Plugin)' is missing an @Override annotation. 3 339–352

fr/paris/lutece/plugins/helpdesk/business/FaqHome.java

Rule Violation Priority Ligne
TooManyMethods This class has too many methods, consider refactoring it. 3 54–241
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 54–241
CollapsibleIfStatements These nested if statements could be combined 3 120–135
AvoidArrayLoops System.arraycopy is more efficient 3 193–196

fr/paris/lutece/plugins/helpdesk/business/FaqRoleRemovalListener.java

Rule Violation Priority Ligne
MissingOverride The method 'canBeRemoved(String)' is missing an @Override annotation. 3 57–73
SimplifyBooleanReturns Avoid unnecessary if..then..else statements when returning booleans 3 67–70
MissingOverride The method 'getRemovalRefusedMessage(String, Locale)' is missing an @Override annotation. 3 81–85

fr/paris/lutece/plugins/helpdesk/business/FaqWorkgroupRemovalListener.java

Rule Violation Priority Ligne
MissingOverride The method 'canBeRemoved(String)' is missing an @Override annotation. 3 57–73
SimplifyBooleanReturns Avoid unnecessary if..then..else statements when returning booleans 3 67–70
UseCollectionIsEmpty Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 3 67
MissingOverride The method 'getRemovalRefusedMessage(String, Locale)' is missing an @Override annotation. 3 81–85

fr/paris/lutece/plugins/helpdesk/business/IAbstractSubjectDAO.java

Rule Violation Priority Ligne
TooManyMethods This class has too many methods, consider refactoring it. 3 46–159

fr/paris/lutece/plugins/helpdesk/business/IFaqDAO.java

Rule Violation Priority Ligne
TooManyMethods This class has too many methods, consider refactoring it. 3 46–129

fr/paris/lutece/plugins/helpdesk/business/IQuestionAnswerDAO.java

Rule Violation Priority Ligne
TooManyMethods This class has too many methods, consider refactoring it. 3 46–135

fr/paris/lutece/plugins/helpdesk/business/QuestionAnswer.java

Rule Violation Priority Ligne
UncommentedEmptyConstructor Document empty constructor 3 59–61
UnnecessaryConstructor Avoid unnecessary constructors - the compiler will generate these for you 3 59–61
AvoidLiteralsInIfCondition Avoid using Literals in Conditional Statements 3 160

fr/paris/lutece/plugins/helpdesk/business/QuestionAnswerDAO.java

Rule Violation Priority Ligne
TooManyMethods This class has too many methods, consider refactoring it. 3 52–399
MissingOverride The method 'newPrimaryKey(Plugin)' is missing an @Override annotation. 3 74–92
MissingOverride The method 'insert(QuestionAnswer, Plugin)' is missing an @Override annotation. 3 100–125
MissingOverride The method 'delete(int, Plugin)' is missing an @Override annotation. 3 133–141
MissingOverride The method 'deleteAll(Plugin)' is missing an @Override annotation. 3 148–154
MissingOverride The method 'deleteBySubject(int, Plugin)' is missing an @Override annotation. 3 162–170
MissingOverride The method 'load(int, Plugin)' is missing an @Override annotation. 3 179–201
MissingOverride The method 'store(QuestionAnswer, Plugin)' is missing an @Override annotation. 3 209–233
MissingOverride The method 'findAll(Plugin)' is missing an @Override annotation. 3 241–262
MissingOverride The method 'findByKeywords(String, Plugin)' is missing an @Override annotation. 3 271–321
ShortVariable Avoid variables with short names like st 3 277
InsufficientStringBufferDeclaration StringBuffer constructor is initialized with size 16, but has at least 66 characters appended. 3 280
ShortVariable Avoid variables with short names like sB 3 280
MissingOverride The method 'findByIdSubject(int, Plugin)' is missing an @Override annotation. 3 329–352
MissingOverride The method 'countbySubject(int, Plugin)' is missing an @Override annotation. 3 360–375
MissingOverride The method 'getMaxOrder(int, Plugin)' is missing an @Override annotation. 3 383–398

fr/paris/lutece/plugins/helpdesk/business/QuestionAnswerHome.java

Rule Violation Priority Ligne
TooManyMethods This class has too many methods, consider refactoring it. 3 53–346

fr/paris/lutece/plugins/helpdesk/business/Subject.java

Rule Violation Priority Ligne
UnnecessaryConstructor Avoid unnecessary constructors - the compiler will generate these for you 3 52–54
CallSuperInConstructor It is a good practice to call super() in a constructor 3 52–54
UncommentedEmptyConstructor Document empty constructor 3 52–54
MissingOverride The method 'getParent(Plugin)' is missing an @Override annotation. 3 79–82
MissingOverride The method 'getChilds(Plugin)' is missing an @Override annotation. 3 89–92

fr/paris/lutece/plugins/helpdesk/business/SubjectDAO.java

Rule Violation Priority Ligne
TooManyMethods This class has too many methods, consider refactoring it. 3 49–485
MissingOverride The method 'newPrimaryKey(Plugin)' is missing an @Override annotation. 3 78–96
MissingOverride The method 'insert(AbstractSubject, Plugin)' is missing an @Override annotation. 3 104–118
AvoidSynchronizedAtMethodLevel Use block level rather than method level synchronization 3 104–118
MissingOverride The method 'delete(int, Plugin)' is missing an @Override annotation. 3 126–134
MissingOverride The method 'load(int, Plugin)' is missing an @Override annotation. 3 143–165
MissingOverride The method 'store(AbstractSubject, Plugin)' is missing an @Override annotation. 3 173–185
MissingOverride The method 'findAll(Plugin)' is missing an @Override annotation. 3 192–212
MissingOverride The method 'findByIdParent(int, Plugin)' is missing an @Override annotation. 3 241–262
MissingOverride The method 'findByIdFaq(int, Plugin)' is missing an @Override annotation. 3 270–291
MissingOverride The method 'findQuestions(int, Plugin)' is missing an @Override annotation. 3 299–322
MissingOverride The method 'countQuestion(int, Plugin)' is missing an @Override annotation. 3 330–345
MissingOverride The method 'getMaxOrder(int, Plugin)' is missing an @Override annotation. 3 353–368
MissingOverride The method 'findByOrder(int, int, Plugin)' is missing an @Override annotation. 3 377–400
MissingOverride The method 'findByFaqOrder(int, int, Plugin)' is missing an @Override annotation. 3 409–432
AvoidSynchronizedAtMethodLevel Use block level rather than method level synchronization 3 441–450
MissingOverride The method 'insertLinkToFaq(int, int, Plugin)' is missing an @Override annotation. 3 441–450
MissingOverride The method 'deleteLinkToFaq(int, int, Plugin)' is missing an @Override annotation. 3 459–468
AvoidSynchronizedAtMethodLevel Use block level rather than method level synchronization 3 459–468
AvoidSynchronizedAtMethodLevel Use block level rather than method level synchronization 3 476–484
MissingOverride The method 'deleteAllLinksToFaq(int, Plugin)' is missing an @Override annotation. 3 476–484

fr/paris/lutece/plugins/helpdesk/business/SubjectHome.java

Rule Violation Priority Ligne
AssignmentToNonFinalStatic Possible unsafe assignment to a non-final static field in a constructor. 3 52
CallSuperInConstructor It is a good practice to call super() in a constructor 3 57–63
NonThreadSafeSingleton Singleton is not thread safe 3 72–75
MissingOverride The method 'getDAO()' is missing an @Override annotation. 3 106–109

fr/paris/lutece/plugins/helpdesk/business/Theme.java

Rule Violation Priority Ligne
CallSuperInConstructor It is a good practice to call super() in a constructor 3 54–56
UncommentedEmptyConstructor Document empty constructor 3 54–56
UnnecessaryConstructor Avoid unnecessary constructors - the compiler will generate these for you 3 54–56
NonThreadSafeSingleton Singleton is not thread safe 3 64–68
MissingOverride The method 'getParent(Plugin)' is missing an @Override annotation. 3 94–97
MissingOverride The method 'getChilds(Plugin)' is missing an @Override annotation. 3 104–107

fr/paris/lutece/plugins/helpdesk/business/ThemeDAO.java

Rule Violation Priority Ligne
TooManyMethods This class has too many methods, consider refactoring it. 3 48–447
MissingOverride The method 'newPrimaryKey(Plugin)' is missing an @Override annotation. 3 76–94
MissingOverride The method 'insert(AbstractSubject, Plugin)' is missing an @Override annotation. 3 102–117
AvoidSynchronizedAtMethodLevel Use block level rather than method level synchronization 3 102–117
MissingOverride The method 'delete(int, Plugin)' is missing an @Override annotation. 3 125–133
MissingOverride The method 'load(int, Plugin)' is missing an @Override annotation. 3 142–165
MissingOverride The method 'store(AbstractSubject, Plugin)' is missing an @Override annotation. 3 173–186
MissingOverride The method 'findAll(Plugin)' is missing an @Override annotation. 3 193–214
MissingOverride The method 'findByIdParent(int, Plugin)' is missing an @Override annotation. 3 222–245
MissingOverride The method 'findByIdFaq(int, Plugin)' is missing an @Override annotation. 3 253–275
MissingOverride The method 'findQuestions(int, Plugin)' is missing an @Override annotation. 3 283–309
MissingOverride The method 'getMaxOrder(int, Plugin)' is missing an @Override annotation. 3 317–332
MissingOverride The method 'findByOrder(int, int, Plugin)' is missing an @Override annotation. 3 341–363
MissingOverride The method 'findByFaqOrder(int, int, Plugin)' is missing an @Override annotation. 3 372–394
MissingOverride The method 'insertLinkToFaq(int, int, Plugin)' is missing an @Override annotation. 3 403–412
AvoidSynchronizedAtMethodLevel Use block level rather than method level synchronization 3 403–412
AvoidSynchronizedAtMethodLevel Use block level rather than method level synchronization 3 421–430
MissingOverride The method 'deleteLinkToFaq(int, int, Plugin)' is missing an @Override annotation. 3 421–430
AvoidSynchronizedAtMethodLevel Use block level rather than method level synchronization 3 438–446
MissingOverride The method 'deleteAllLinksToFaq(int, Plugin)' is missing an @Override annotation. 3 438–446

fr/paris/lutece/plugins/helpdesk/business/ThemeHome.java

Rule Violation Priority Ligne
AssignmentToNonFinalStatic Possible unsafe assignment to a non-final static field in a constructor. 3 57
CallSuperInConstructor It is a good practice to call super() in a constructor 3 62–68
NonThreadSafeSingleton Singleton is not thread safe 3 77–80
MissingOverride The method 'getDAO()' is missing an @Override annotation. 3 137–140

fr/paris/lutece/plugins/helpdesk/business/ThemeMailingListRemovalListener.java

Rule Violation Priority Ligne
MissingOverride The method 'canBeRemoved(String)' is missing an @Override annotation. 3 57–80
ShortVariable Avoid variables with short names like id 3 57
ShortVariable Avoid variables with short names like id 3 88
MissingOverride The method 'getRemovalRefusedMessage(String, Locale)' is missing an @Override annotation. 3 88–92

fr/paris/lutece/plugins/helpdesk/business/VisitorQuestion.java

Rule Violation Priority Ligne
UncommentedEmptyConstructor Document empty constructor 3 55–57
UnnecessaryConstructor Avoid unnecessary constructors - the compiler will generate these for you 3 55–57

fr/paris/lutece/plugins/helpdesk/business/VisitorQuestionDAO.java

Rule Violation Priority Ligne
DefaultPackage Use explicit scoping instead of the default package private level 3 75–78
CommentDefaultAccessModifier To avoid mistakes add a comment at the beginning of the getInstance method if you want a default access modifier 3 75–78
MissingOverride The method 'newPrimaryKey(Plugin)' is missing an @Override annotation. 3 89–107
AvoidSynchronizedAtMethodLevel Use block level rather than method level synchronization 3 115–133
MissingOverride The method 'insert(VisitorQuestion, Plugin)' is missing an @Override annotation. 3 115–133
MissingOverride The method 'delete(int, Plugin)' is missing an @Override annotation. 3 141–149
MissingOverride The method 'load(int, Plugin)' is missing an @Override annotation. 3 158–183
MissingOverride The method 'store(VisitorQuestion, Plugin)' is missing an @Override annotation. 3 191–206
MissingOverride The method 'findAll(Plugin)' is missing an @Override annotation. 3 213–237
MissingOverride The method 'findByUser(int, Plugin)' is missing an @Override annotation. 3 245–270
MissingOverride The method 'findByTheme(int, Plugin)' is missing an @Override annotation. 3 278–303
MissingOverride The method 'findArchivedQuestionsByTheme(int, Plugin)' is missing an @Override annotation. 3 311–337

fr/paris/lutece/plugins/helpdesk/service/FaqResourceIdService.java

Rule Violation Priority Ligne
MissingOverride The method 'register()' is missing an @Override annotation. 3 90–137
ShortVariable Avoid variables with short names like rt 3 92
ShortVariable Avoid variables with short names like p 3 97
MissingOverride The method 'getResourceIdList(Locale)' is missing an @Override annotation. 3 144–147
MissingOverride The method 'getTitle(String, Locale)' is missing an @Override annotation. 3 155–160

fr/paris/lutece/plugins/helpdesk/service/HelpdeskPlugin.java

Rule Violation Priority Ligne
MissingOverride The method 'init()' is missing an @Override annotation. 3 49–53

fr/paris/lutece/plugins/helpdesk/service/helpdesksearch/HelpdeskLuceneSearchEngine.java

Rule Violation Priority Ligne
ExcessiveImports A high number of imports can indicate a high degree of coupling within an object. 3 34–325
NPathComplexity The method 'getSearchResults(int, String, Date, Date, Subject, boolean, HttpServletRequest)' has an NPath complexity of 362 3 97–214
MissingOverride The method 'getSearchResults(int, String, Date, Date, Subject, boolean, HttpServletRequest)' is missing an @Override annotation. 3 97–214
CyclomaticComplexity The method 'getSearchResults(int, String, Date, Date, Subject, boolean, HttpServletRequest)' has a cyclomatic complexity of 13. 3 97–214
ExcessiveMethodLength Avoid really long methods. 3 97–214
NcssCount The method 'getSearchResults(int, String, Date, Date, Subject, boolean, HttpServletRequest)' has a NCSS line count of 65. 3 97–214
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 100
ShortVariable Avoid variables with short names like ir 3 105
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 109
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 110
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 111
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 155
UseStringBufferForStringAppends Prefer StringBuilder (non-synchronized) or StringBuffer (synchronized) over += for concatenating strings 3 163
UseStringBufferForStringAppends Prefer StringBuilder (non-synchronized) or StringBuffer (synchronized) over += for concatenating strings 3 166
OptimizableToArrayCall This call to Collection.toArray() may be optimizable 3 184
OptimizableToArrayCall This call to Collection.toArray() may be optimizable 3 185
OptimizableToArrayCall This call to Collection.toArray() may be optimizable 3 186
ForLoopCanBeForeach This for loop can be replaced by a foreach loop 3 200–206
ShortVariable Avoid variables with short names like si 3 204
AvoidCatchingGenericException Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block 3 208
ConfusingTernary Avoid if (x != y) ..; else ..; 3 233–255
ConfusingTernary Avoid if (x != y) ..; else ..; 3 237–250
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 280
LinguisticNaming Linguistics Antipattern - The getter 'getListSubjects' should not return void linguistically 3 313–324

fr/paris/lutece/plugins/helpdesk/service/helpdesksearch/HelpdeskSearchItem.java

Rule Violation Priority Ligne
ConstructorCallsOverridableMethod Overridable method 'setSubjectId' called during object construction 1 60

fr/paris/lutece/plugins/helpdesk/service/helpdesksearch/HelpdeskSearchService.java

Rule Violation Priority Ligne
NonThreadSafeSingleton Singleton is not thread safe 3 72–75
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 96

fr/paris/lutece/plugins/helpdesk/service/search/HelpdeskIndexer.java

Rule Violation Priority Ligne
ExcessiveImports A high number of imports can indicate a high degree of coupling within an object. 3 34–466
MissingOverride The method 'getDescription()' is missing an @Override annotation. 3 99–102
MissingOverride The method 'indexDocuments()' is missing an @Override annotation. 3 111–122
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.lucene.document.Document' due to existing import 'org.apache.lucene.document.Document' 4 143
AvoidCatchingGenericException Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block 3 148
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.lucene.document.Document' due to existing import 'org.apache.lucene.document.Document' 4 169
AvoidCatchingGenericException Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block 3 175
MissingOverride The method 'getDocuments(String)' is missing an @Override annotation. 3 204–261
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.lucene.document.Document' due to existing import 'org.apache.lucene.document.Document' 4 207
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 207
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.lucene.document.Document' due to existing import 'org.apache.lucene.document.Document' 4 207
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.lucene.document.Document' due to existing import 'org.apache.lucene.document.Document' 4 237
AvoidDeeplyNestedIfStmts Deeply nested if..then statements are hard to read 3 243–255
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.lucene.document.Document' due to existing import 'org.apache.lucene.document.Document' 4 252
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.lucene.document.Document' due to existing import 'org.apache.lucene.document.Document' 4 276
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.lucene.document.Document' due to existing import 'org.apache.lucene.document.Document' 4 280
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.lucene.document.Document' due to existing import 'org.apache.lucene.document.Document' 4 280
ShortVariable Avoid variables with short names like ft 3 282
PreserveStackTrace New exception is thrown in catch block, original stack trace may be lost 3 321
IdenticalCatchBranches 'catch' branch identical to 'SAXException' branch 3 323–326
PreserveStackTrace New exception is thrown in catch block, original stack trace may be lost 3 325
ShortVariable Avoid variables with short names like sb 3 330
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.lucene.document.Document' due to existing import 'org.apache.lucene.document.Document' 4 358
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.lucene.document.Document' due to existing import 'org.apache.lucene.document.Document' 4 362
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.lucene.document.Document' due to existing import 'org.apache.lucene.document.Document' 4 362
ShortVariable Avoid variables with short names like ft 3 364
UnusedFormalParameter Avoid unused method parameters such as 'plugin'. 3 401
ConsecutiveAppendsShouldReuse StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 3 405
ConsecutiveAppendsShouldReuse StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 3 406
MissingOverride The method 'getName()' is missing an @Override annotation. 3 416–419
MissingOverride The method 'getVersion()' is missing an @Override annotation. 3 425–428
MissingOverride The method 'isEnable()' is missing an @Override annotation. 3 434–447
MissingOverride The method 'getListType()' is missing an @Override annotation. 3 452–457
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 454
MissingOverride The method 'getSpecificSearchAppUrl()' is missing an @Override annotation. 3 462–465

fr/paris/lutece/plugins/helpdesk/utils/HelpdeskIndexerUtils.java

Rule Violation Priority Ligne
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 13–44

fr/paris/lutece/plugins/helpdesk/web/HelpdeskApp.java

Rule Violation Priority Ligne
ExcessiveImports A high number of imports can indicate a high degree of coupling within an object. 3 34–569
UnnecessaryConstructor Avoid unnecessary constructors - the compiler will generate these for you 3 165–167
UncommentedEmptyConstructor Document empty constructor 3 165–167
MissingOverride The method 'getPage(HttpServletRequest, int, Plugin)' is missing an @Override annotation. 3 178–237
CyclomaticComplexity The method 'getPage(HttpServletRequest, int, Plugin)' has a cyclomatic complexity of 12. 3 178–237
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 183
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 248
AvoidLiteralsInIfCondition Avoid using Literals in Conditional Statements 3 289
UseStringBufferForStringAppends Prefer StringBuilder (non-synchronized) or StringBuffer (synchronized) over += for concatenating strings 3 336
CyclomaticComplexity The method 'getSubjectListSearch(HttpServletRequest, Plugin, Faq)' has a cyclomatic complexity of 13. 3 397–473
NPathComplexity The method 'getSubjectListSearch(HttpServletRequest, Plugin, Faq)' has an NPath complexity of 384 3 397–473
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 451
ShortVariable Avoid variables with short names like t 3 470

fr/paris/lutece/plugins/helpdesk/web/HelpdeskJspBean.java

Rule Violation Priority Ligne
ExcessivePublicCount This class has a bunch of public methods and attributes 3 34–2745
ExcessiveImports A high number of imports can indicate a high degree of coupling within an object. 3 34–2745
MissingSerialVersionUID Classes implementing Serializable should set a serialVersionUID 3 98–2745
ExcessiveClassLength Avoid really long classes. 3 98–2745
CyclomaticComplexity The class 'HelpdeskJspBean' has a total cyclomatic complexity of 286 (highest 19). 3 98–2745
TooManyMethods This class has too many methods, consider refactoring it. 3 99–2745
UncommentedEmptyConstructor Document empty constructor 3 281–283
UnnecessaryConstructor Avoid unnecessary constructors - the compiler will generate these for you 3 281–283
CallSuperInConstructor It is a good practice to call super() in a constructor 3 281–283
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 292
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 292
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 292
AddEmptyString Do not add empty strings 3 315
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 340
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 340
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 531
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 572
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 573
UseCollectionIsEmpty Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 3 721
ConfusingTernary Avoid if (x != y) ..; else ..; 3 729
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 811
CyclomaticComplexity The method 'doCreateQuestionAnswer(HttpServletRequest)' has a cyclomatic complexity of 11. 3 851–925
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 854
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 854
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 864
CyclomaticComplexity The method 'doActionSelectionQuestionAnswer(HttpServletRequest)' has a cyclomatic complexity of 12. 3 1035–1098
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 1274
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 1323
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 1323
UseCollectionIsEmpty Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 3 1361
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 1366
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 1366
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 1400
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 1401
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 1423
UseStringBufferForStringAppends Prefer StringBuilder (non-synchronized) or StringBuffer (synchronized) over += for concatenating strings 3 1437
UseCollectionIsEmpty Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 3 1486
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 1551
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 1551
NPathComplexity The method 'insertQuestionAnswers(HttpServletRequest, List, Faq, boolean, Collection)' has an NPath complexity of 216 3 1568–1697
ExcessiveMethodLength Avoid really long methods. 3 1568–1697
CyclomaticComplexity The method 'insertQuestionAnswers(HttpServletRequest, List, Faq, boolean, Collection)' has a cyclomatic complexity of 19. 3 1568–1697
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 1588
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 1589
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 1714
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 1714
UseCollectionIsEmpty Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 3 1724
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 1758
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 1758
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 1759
ConfusingTernary Avoid if (x != y) ..; else ..; 3 1759
UseCollectionIsEmpty Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 3 1768
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 1807
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 1857
UseCollectionIsEmpty Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 3 1867
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 1902
UseCollectionIsEmpty Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 3 1909
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 1945
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 1945
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 1979
CyclomaticComplexity The method 'doCreateTheme(HttpServletRequest)' has a cyclomatic complexity of 10. 3 2014–2060
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 2024
CyclomaticComplexity The method 'doModifyTheme(HttpServletRequest)' has a cyclomatic complexity of 12. 3 2067–2124
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 2078
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 2088
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 2089
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 2254
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 2255
AddEmptyString Do not add empty strings 3 2283
GuardLogStatement Logger calls should be surrounded by log level guards. 2 2493
UnusedFormalParameter Avoid unused method parameters such as 'faq'. 3 2531
UnnecessaryLocalBeforeReturn Consider simply returning the value vs storing it in local variable 'nIdOrder' 3 2536
GuardLogStatement Logger calls should be surrounded by log level guards. 2 2551
PositionLiteralsFirstInComparisons Position literals first in String comparisons 3 2553
GuardLogStatement Logger calls should be surrounded by log level guards. 2 2568
PositionLiteralsFirstInComparisons Position literals first in String comparisons 3 2570
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 2603–2604
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 2605
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 2606–2607
PositionLiteralsFirstInComparisons Position literals first in String comparisons 3 2620
AvoidThrowingRawExceptionTypes Avoid throwing raw exception types. 1 2648
PreserveStackTrace New exception is thrown in catch block, original stack trace may be lost 3 2648
NPathComplexity The method 'getAuthorizedActionCollection(Faq)' has an NPath complexity of 256 3 2689–2742
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 2691

fr/paris/lutece/plugins/helpdesk/web/HelpdeskSearchJspBean.java

Rule Violation Priority Ligne
ExcessiveImports A high number of imports can indicate a high degree of coupling within an object. 3 34–333
MissingSerialVersionUID Classes implementing Serializable should set a serialVersionUID 3 75–333
NcssCount The method 'getSearch(HttpServletRequest)' has a NCSS line count of 68. 3 133–234
CyclomaticComplexity The method 'getSearch(HttpServletRequest)' has a cyclomatic complexity of 12. 3 133–234
NPathComplexity The method 'getSearch(HttpServletRequest)' has an NPath complexity of 1152 3 133–234
ExcessiveMethodLength Avoid really long methods. 3 133–234
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 140
ConfusingTernary Avoid if (x != y) ..; else ..; 3 153
ConfusingTernary Avoid if (x != y) ..; else ..; 3 157
UnusedLocalVariable Avoid unused local variables such as 'nPageIndex'. 3 159
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 159
ConfusingTernary Avoid if (x != y) ..; else ..; 3 229
ShortVariable Avoid variables with short names like os 3 263
UnusedFormalParameter Avoid unused method parameters such as 'request'. 3 283
UnusedLocalVariable Avoid unused local variables such as 'plugin'. 3 285
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 285
UseCollectionIsEmpty Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 3 287
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 290
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 294
ShortVariable Avoid variables with short names like i 3 314
ConfusingTernary Avoid if (x != y) ..; else ..; 3 319–326