Fork me on GitHub

PMD Results

The following document contains the results of PMD 6.13.0.

Violations By Priority

Priority 1

fr/paris/lutece/plugins/newsletter/business/NewsLetterTemplate.java

Rule Violation Line
FieldNamingConventions The field name 'strFileKey' doesn't match '_[a-z][a-zA-Z0-9]*' 54

fr/paris/lutece/plugins/newsletter/service/NewsletterService.java

Rule Violation Line
LocalVariableNamingConventions The local variable name '_bTemplate' doesn't match '[a-z][a-zA-Z0-9]*' 367

fr/paris/lutece/plugins/newsletter/util/NewsLetterConstants.java

Rule Violation Line
ClassNamingConventions The utility class name 'NewsLetterConstants' doesn't match '[A-Z][a-zA-Z0-9]+(Utils?|Helper|Home|Service)' 41168
FieldNamingConventions The public constant name 'PROPERTY_FileProviderStore' doesn't match '[A-Z][A-Z_0-9]*' 47

fr/paris/lutece/plugins/newsletter/web/NewsletterJspBean.java

Rule Violation Line
AvoidThrowingRawExceptionTypes Avoid throwing raw exception types. 1983
AvoidFileStream Avoid instantiating FileInputStream, FileOutputStream, FileReader, or FileWriter 2536

fr/paris/lutece/plugins/newsletter/web/NewsletterTemplateJspBean.java

Rule Violation Line
AvoidFileStream Avoid instantiating FileInputStream, FileOutputStream, FileReader, or FileWriter 534
AvoidFileStream Avoid instantiating FileInputStream, FileOutputStream, FileReader, or FileWriter 537
AvoidFileStream Avoid instantiating FileInputStream, FileOutputStream, FileReader, or FileWriter 547

Priority 2

fr/paris/lutece/plugins/newsletter/web/portlet/NewsLetterArchivePortletJspBean.java

Rule Violation Line
IntegerInstantiation Avoid instantiating Integer objects. Call Integer.valueOf() instead. 267

fr/paris/lutece/plugins/newsletter/web/portlet/NewsLetterSubscriptionPortletJspBean.java

Rule Violation Line
IntegerInstantiation Avoid instantiating Integer objects. Call Integer.valueOf() instead. 277

Priority 3

fr/paris/lutece/plugins/newsletter/business/AwaitingActivationDAO.java

Rule Violation Line
MissingOverride The method 'delete(int, int, Plugin)' is missing an @Override annotation. 5968
MissingOverride The method 'exists(int, int, Plugin)' is missing an @Override annotation. 8194
MissingOverride The method 'insert(int, int, Plugin)' is missing an @Override annotation. 106115

fr/paris/lutece/plugins/newsletter/business/INewsLetterDAO.java

Rule Violation Line
TooManyMethods This class has too many methods, consider refactoring it. 50265

fr/paris/lutece/plugins/newsletter/business/ISendingNewsLetterDAO.java

Rule Violation Line
LooseCoupling Avoid using implementation types like 'ArrayList'; use the interface instead 117
LooseCoupling Avoid using implementation types like 'ArrayList'; use the interface instead 117

fr/paris/lutece/plugins/newsletter/business/NewsLetter.java

Rule Violation Line
TooManyFields Too many fields 46445
AvoidSynchronizedAtMethodLevel Use block level rather than method level synchronization 7786
MissingOverride The method 'getWorkgroup()' is missing an @Override annotation. 326329
MissingOverride The method 'getResourceId()' is missing an @Override annotation. 410413
AddEmptyString Do not add empty strings 412
MissingOverride The method 'getResourceTypeCode()' is missing an @Override annotation. 420423

fr/paris/lutece/plugins/newsletter/business/NewsLetterDAO.java

Rule Violation Line
TooManyMethods This class has too many methods, consider refactoring it. 50527
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 258
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 315
ConfusingTernary Avoid if (x != y) ..; else ..; 468476
ConfusingTernary Avoid if (x != y) ..; else ..; 498506

fr/paris/lutece/plugins/newsletter/business/NewsLetterHome.java

Rule Violation Line
TooManyMethods This class has too many methods, consider refactoring it. 49316

fr/paris/lutece/plugins/newsletter/business/NewsLetterTemplate.java

Rule Violation Line
AvoidSynchronizedAtMethodLevel Use block level rather than method level synchronization 6269
MissingOverride The method 'getWorkgroup()' is missing an @Override annotation. 181184
MissingOverride The method 'getResourceId()' is missing an @Override annotation. 202205
MissingOverride The method 'getResourceTypeCode()' is missing an @Override annotation. 212215

fr/paris/lutece/plugins/newsletter/business/NewsLetterTemplateDAO.java

Rule Violation Line
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 73
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 134
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 274
ConfusingTernary Avoid if (x != y) ..; else ..; 311319

fr/paris/lutece/plugins/newsletter/business/NewsletterPropertiesDAO.java

Rule Violation Line
MissingOverride The method 'load(Plugin)' is missing an @Override annotation. 5783
MissingOverride The method 'store(NewsLetterProperties, Plugin)' is missing an @Override annotation. 93102

fr/paris/lutece/plugins/newsletter/business/NewsletterTemplateRemovalListener.java

Rule Violation Line
ShortVariable Avoid variables with short names like id 63

fr/paris/lutece/plugins/newsletter/business/NewsletterTemplateWorkgroupRemovalListener.java

Rule Violation Line
MissingOverride The method 'canBeRemoved(String)' is missing an @Override annotation. 5876
MissingOverride The method 'getRemovalRefusedMessage(String, Locale)' is missing an @Override annotation. 8791

fr/paris/lutece/plugins/newsletter/business/NewsletterWorkgroupRemovalListener.java

Rule Violation Line
MissingOverride The method 'canBeRemoved(String)' is missing an @Override annotation. 5876
MissingOverride The method 'getRemovalRefusedMessage(String, Locale)' is missing an @Override annotation. 8791

fr/paris/lutece/plugins/newsletter/business/Pair.java

Rule Violation Line
ImmutableField Private field '_first' could be made final; it is only initialized in the declaration or constructor. 48
ImmutableField Private field '_second' could be made final; it is only initialized in the declaration or constructor. 49

fr/paris/lutece/plugins/newsletter/business/SendingNewsLetterDAO.java

Rule Violation Line
MissingOverride The method 'insert(SendingNewsLetter, Plugin)' is missing an @Override annotation. 6883
MissingOverride The method 'delete(int, Plugin)' is missing an @Override annotation. 9399
MissingOverride The method 'load(int, Plugin)' is missing an @Override annotation. 110133
MissingOverride The method 'store(SendingNewsLetter, Plugin)' is missing an @Override annotation. 143150
CommentDefaultAccessModifier To avoid mistakes add a comment at the beginning of the checkPrimaryKey method if you want a default access modifier 161177
DefaultPackage Use explicit scoping instead of the default package private level 161177
CommentDefaultAccessModifier To avoid mistakes add a comment at the beginning of the newPrimaryKey method if you want a default access modifier 186204
DefaultPackage Use explicit scoping instead of the default package private level 186204
MissingOverride The method 'selectLastSendingForNewsletterId(int, Plugin)' is missing an @Override annotation. 215237
MissingOverride The method 'selectAllLastSendingForNewsletterId(int, Plugin)' is missing an @Override annotation. 248272
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 251
MissingOverride The method 'findAllSendings(Plugin)' is missing an @Override annotation. 281304
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 283
LooseCoupling Avoid using implementation types like 'ArrayList'; use the interface instead 315
MissingOverride The method 'findSendingsByIds(ArrayList, Plugin)' is missing an @Override annotation. 315340
LooseCoupling Avoid using implementation types like 'ArrayList'; use the interface instead 315
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 317

fr/paris/lutece/plugins/newsletter/business/SendingNewsLetterHome.java

Rule Violation Line
LooseCoupling Avoid using implementation types like 'ArrayList'; use the interface instead 168
LooseCoupling Avoid using implementation types like 'ArrayList'; use the interface instead 168

fr/paris/lutece/plugins/newsletter/business/Subscriber.java

Rule Violation Line
UseLocaleWithCaseConversions When doing a String.toLowerCase()/toUpperCase() call, use a Locale 89

fr/paris/lutece/plugins/newsletter/business/SubscriberDAO.java

Rule Violation Line
TooManyMethods This class has too many methods, consider refactoring it. 46421
MissingOverride The method 'insert(Subscriber, Plugin)' is missing an @Override annotation. 7284
MissingOverride The method 'delete(int, Plugin)' is missing an @Override annotation. 94100
MissingOverride The method 'load(int, Plugin)' is missing an @Override annotation. 111128
CommentDefaultAccessModifier To avoid mistakes add a comment at the beginning of the checkPrimaryKey method if you want a default access modifier 139155
DefaultPackage Use explicit scoping instead of the default package private level 139155
DefaultPackage Use explicit scoping instead of the default package private level 164183
CommentDefaultAccessModifier To avoid mistakes add a comment at the beginning of the newPrimaryKey method if you want a default access modifier 164183
MissingOverride The method 'selectAll(Plugin)' is missing an @Override annotation. 192211
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 197
MissingOverride The method 'selectByEmail(String, Plugin)' is missing an @Override annotation. 222240
UseLocaleWithCaseConversions When doing a String.toLowerCase()/toUpperCase() call, use a Locale 225
MissingOverride The method 'selectSubscribers(int, Plugin)' is missing an @Override annotation. 251272
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 257
MissingOverride The method 'selectSubscribers(int, String, int, int, Plugin)' is missing an @Override annotation. 289316
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 300
MissingOverride The method 'selectSubscribersForSending(int, String, int, int, Plugin)' is missing an @Override annotation. 333360
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 344
MissingOverride The method 'selectNewsLetters(int, Plugin)' is missing an @Override annotation. 371392
MissingOverride The method 'selectSubscribersList(Plugin)' is missing an @Override annotation. 401420
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 407

fr/paris/lutece/plugins/newsletter/business/portlet/INewsLetterArchivePortletDAO.java

Rule Violation Line
LooseCoupling Avoid using implementation types like 'ArrayList'; use the interface instead 79

fr/paris/lutece/plugins/newsletter/business/portlet/NewsLetterArchivePortlet.java

Rule Violation Line
MissingOverride The method 'getXmlDocument(HttpServletRequest)' is missing an @Override annotation. 6871
MissingOverride The method 'getXml(HttpServletRequest)' is missing an @Override annotation. 80101
MissingOverride The method 'remove()' is missing an @Override annotation. 114117

fr/paris/lutece/plugins/newsletter/business/portlet/NewsLetterArchivePortletDAO.java

Rule Violation Line
MissingOverride The method 'insert(Portlet)' is missing an @Override annotation. 6568
MissingOverride The method 'delete(int)' is missing an @Override annotation. 7783
MissingOverride The method 'load(int)' is missing an @Override annotation. 92110
MissingOverride The method 'store(Portlet)' is missing an @Override annotation. 118121
MissingOverride The method 'insertSending(int, int, Plugin)' is missing an @Override annotation. 131139
MissingOverride The method 'removeSending(int, int, Plugin)' is missing an @Override annotation. 149157
LooseCoupling Avoid using implementation types like 'ArrayList'; use the interface instead 166
MissingOverride The method 'findSendingsInPortlet(int, Plugin)' is missing an @Override annotation. 166182
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 168

fr/paris/lutece/plugins/newsletter/business/portlet/NewsLetterArchivePortletHome.java

Rule Violation Line
AssignmentToNonFinalStatic Possible unsafe assignment to a non-final static field in a constructor. 50
CallSuperInConstructor It is a good practice to call super() in a constructor 5864
MissingOverride The method 'getPortletTypeId()' is missing an @Override annotation. 7177
UnnecessaryLocalBeforeReturn Consider simply returning the value vs storing it in local variable 'strPortletTypeId' 76
MissingOverride The method 'getDAO()' is missing an @Override annotation. 9497
LooseCoupling Avoid using implementation types like 'ArrayList'; use the interface instead 132

fr/paris/lutece/plugins/newsletter/business/portlet/NewsLetterSubscriptionPortlet.java

Rule Violation Line
MissingOverride The method 'compare(NewsLetter, NewsLetter)' is missing an @Override annotation. 9699
MissingOverride The method 'setPluginName(String)' is missing an @Override annotation. 112118
MissingOverride The method 'getXmlDocument(HttpServletRequest)' is missing an @Override annotation. 127130
NPathComplexity The method 'getXml(HttpServletRequest)' has an NPath complexity of 960 139243
ExcessiveMethodLength Avoid really long methods. 139243
CyclomaticComplexity The method 'getXml(HttpServletRequest)' has a cyclomatic complexity of 12. 139243
MissingOverride The method 'getXml(HttpServletRequest)' is missing an @Override annotation. 139243
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 175
UnnecessaryLocalBeforeReturn Consider simply returning the value vs storing it in local variable 'str' 242
MissingOverride The method 'remove()' is missing an @Override annotation. 256259

fr/paris/lutece/plugins/newsletter/business/portlet/NewsLetterSubscriptionPortletDAO.java

Rule Violation Line
MissingOverride The method 'insert(Portlet)' is missing an @Override annotation. 6568
MissingOverride The method 'delete(int)' is missing an @Override annotation. 7783
MissingOverride The method 'load(int)' is missing an @Override annotation. 92110
MissingOverride The method 'store(Portlet)' is missing an @Override annotation. 118121
MissingOverride The method 'insertSubscription(int, int)' is missing an @Override annotation. 131139
MissingOverride The method 'removeSubscription(int, int)' is missing an @Override annotation. 149157
MissingOverride The method 'findSelectedNewsletters(int)' is missing an @Override annotation. 166182
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 168

fr/paris/lutece/plugins/newsletter/business/portlet/NewsLetterSubscriptionPortletHome.java

Rule Violation Line
MissingOverride The method 'getPortletTypeId()' is missing an @Override annotation. 5965
UnnecessaryLocalBeforeReturn Consider simply returning the value vs storing it in local variable 'strPortletTypeId' 64
MissingOverride The method 'getDAO()' is missing an @Override annotation. 8285

fr/paris/lutece/plugins/newsletter/business/topic/FreeHtmlTopicDao.java

Rule Violation Line
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 121
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 124
UseCollectionIsEmpty Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 126

fr/paris/lutece/plugins/newsletter/business/topic/NewsletterTopic.java

Rule Violation Line
ShortVariable Avoid variables with short names like o 192
CyclomaticComplexity The method 'compareTo(NewsletterTopic)' has a cyclomatic complexity of 12. 192228
ShortVariable Avoid variables with short names like o 250

fr/paris/lutece/plugins/newsletter/business/topic/NewsletterTopicDao.java

Rule Violation Line
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 139
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 178

fr/paris/lutece/plugins/newsletter/business/topic/NewsletterTopicHome.java

Rule Violation Line
UseCollectionIsEmpty Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 151
AvoidLiteralsInIfCondition Avoid using Literals in Conditional Statements 154

fr/paris/lutece/plugins/newsletter/service/NewsLetterArchiveService.java

Rule Violation Line
AssignmentToNonFinalStatic Possible unsafe assignment to a non-final static field in a constructor. 64
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 98
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 100
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 117
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 117

fr/paris/lutece/plugins/newsletter/service/NewsLetterRegistrationService.java

Rule Violation Line
ExcessiveImports A high number of imports can indicate a high degree of coupling within an object. 34435
AssignmentToNonFinalStatic Possible unsafe assignment to a non-final static field in a constructor. 93
CyclomaticComplexity The method 'doSubscription(HttpServletRequest)' has a cyclomatic complexity of 13. 129237
NPathComplexity The method 'doSubscription(HttpServletRequest)' has an NPath complexity of 579 129237
ExcessiveMethodLength Avoid really long methods. 129237
CollapsibleIfStatements These nested if statements could be combined 153157
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 212
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 212
CyclomaticComplexity The method 'doConfirmSubscribe(HttpServletRequest)' has a cyclomatic complexity of 10. 247328
CyclomaticComplexity The method 'doUnSubscribe(HttpServletRequest)' has a cyclomatic complexity of 10. 338381
InsufficientStringBufferDeclaration StringBuffer constructor is initialized with size 16, but has at least 104 characters appended. 410
ConsecutiveLiteralAppends StringBuffer (or StringBuilder).append is called 2 consecutive times with literals. Use a single append with a single combined String. 411

fr/paris/lutece/plugins/newsletter/service/NewsletterFileService.java

Rule Violation Line
CommentRequired Header comments are required 14101
CommentRequired Public method and constructor comments are required 1627
CommentRequired Public method and constructor comments are required 2931
CommentRequired Public method and constructor comments are required 3251
ConfusingTernary Avoid if (x != y) ..; else ..; 3845
AvoidCatchingGenericException Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block 47
CommentRequired Public method and constructor comments are required 5375
ConfusingTernary Avoid if (x != y) ..; else ..; 6168
AvoidCatchingGenericException Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block 71
CommentRequired Public method and constructor comments are required 7788
CommentRequired Public method and constructor comments are required 89100

fr/paris/lutece/plugins/newsletter/service/NewsletterPlugin.java

Rule Violation Line
MissingOverride The method 'init()' is missing an @Override annotation. 5358

fr/paris/lutece/plugins/newsletter/service/NewsletterResourceIdService.java

Rule Violation Line
CallSuperInConstructor It is a good practice to call super() in a constructor 124127
MissingOverride The method 'register()' is missing an @Override annotation. 132196
ShortVariable Avoid variables with short names like rt 134
ShortVariable Avoid variables with short names like p 140
MissingOverride The method 'getResourceIdList(Locale)' is missing an @Override annotation. 205208
MissingOverride The method 'getTitle(String, Locale)' is missing an @Override annotation. 219229
ConfusingTernary Avoid if (x != y) ..; else ..; 228

fr/paris/lutece/plugins/newsletter/service/NewsletterService.java

Rule Violation Line
ExcessiveImports A high number of imports can indicate a high degree of coupling within an object. 34541
GodClass Possible God Class (WMC=51, ATFD=65, TCC=0.000%) 83541
ConfusingTernary Avoid if (x != y) ..; else ..; 143151
ShortVariable Avoid variables with short names like t 156
UseCollectionIsEmpty Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 167
UnnecessaryWrapperObjectCreation Unnecessary wrapper object creation 206
IdenticalCatchBranches 'catch' branch identical to 'UnsupportedEncodingException' branch 242245
CyclomaticComplexity The method 'generateNewsletterHtmlCode(NewsLetter, int, String, AdminUser, Locale)' has a cyclomatic complexity of 13. 301381
NPathComplexity The method 'generateNewsletterHtmlCode(NewsLetter, int, String, AdminUser, Locale)' has an NPath complexity of 300 301381
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 311
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 311
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 319
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 348

fr/paris/lutece/plugins/newsletter/service/NewsletterTemplateResourceIdService.java

Rule Violation Line
CallSuperInConstructor It is a good practice to call super() in a constructor 7073
MissingOverride The method 'register()' is missing an @Override annotation. 78102
ShortVariable Avoid variables with short names like rt 80
ShortVariable Avoid variables with short names like p 86
MissingOverride The method 'getResourceIdList(Locale)' is missing an @Override annotation. 111114
MissingOverride The method 'getTitle(String, Locale)' is missing an @Override annotation. 125136
ConfusingTernary Avoid if (x != y) ..; else ..; 135

fr/paris/lutece/plugins/newsletter/service/SubscriberCleaningDaemon.java

Rule Violation Line
MissingOverride The method 'run()' is missing an @Override annotation. 4649

fr/paris/lutece/plugins/newsletter/service/topic/FreeHtmlTopicService.java

Rule Violation Line
MissingOverride The method 'hasConfiguration()' is missing an @Override annotation. 103106
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 115
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 115
ConfusingTernary Avoid if (x != y) ..; else ..; 193200

fr/paris/lutece/plugins/newsletter/service/topic/NewsletterTopicService.java

Rule Violation Line
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 222

fr/paris/lutece/plugins/newsletter/util/HtmlDomDocNewsletter.java

Rule Violation Line
ImmutableField Private field '_strBaseUrl' could be made final; it is only initialized in the declaration or constructor. 124
ShortVariable Avoid variables with short names like tf 208
IdenticalCatchBranches 'catch' branch identical to 'TransformerConfigurationException' branch 222227
UnnecessaryLocalBeforeReturn Consider simply returning the value vs storing it in local variable 'stringResult' 231
ImmutableField Private field '_strTagName' could be made final; it is only initialized in the declaration or constructor. 259
ImmutableField Private field '_strAttributeName' could be made final; it is only initialized in the declaration or constructor. 260
ImmutableField Private field '_strTestedAttributeName' could be made final; it is only initialized in the declaration or constructor. 261
ImmutableField Private field '_strTestedAttributeValue' could be made final; it is only initialized in the declaration or constructor. 262

fr/paris/lutece/plugins/newsletter/util/NewsLetterConstants.java

Rule Violation Line
FieldDeclarationsShouldBeAtStartOfClass Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes. 165
FieldDeclarationsShouldBeAtStartOfClass Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes. 166
FieldDeclarationsShouldBeAtStartOfClass Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes. 167

fr/paris/lutece/plugins/newsletter/util/NewsletterUtils.java

Rule Violation Line
UseStringBufferForStringAppends Prefer StringBuilder (non-synchronized) or StringBuffer (synchronized) over += for concatenating strings 85
UseStringBufferForStringAppends Prefer StringBuilder (non-synchronized) or StringBuffer (synchronized) over += for concatenating strings 86
PositionLiteralsFirstInComparisons Position literals first in String comparisons 149
ConfusingTernary Avoid if (x != y) ..; else ..; 157164
CommentRequired Public method and constructor comments are required 227230

fr/paris/lutece/plugins/newsletter/web/NewsLetterApp.java

Rule Violation Line
MissingSerialVersionUID Classes implementing Serializable should set a serialVersionUID 65277
UncommentedEmptyMethodBody Document empty method body 100101
MissingOverride The method 'getPage(HttpServletRequest, int, Plugin)' is missing an @Override annotation. 116151
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 121
ConfusingTernary Avoid if (x != y) ..; else ..; 166197
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 178
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 266
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 266

fr/paris/lutece/plugins/newsletter/web/NewsletterJspBean.java

Rule Violation Line
ExcessiveImports A high number of imports can indicate a high degree of coupling within an object. 342631
ExcessivePublicCount This class has a bunch of public methods and attributes 342631
ExcessiveClassLength Avoid really long classes. 1172631
CyclomaticComplexity The class 'NewsletterJspBean' has a total cyclomatic complexity of 231 (highest 19). 1172631
TooManyMethods This class has too many methods, consider refactoring it. 1182631
UnusedPrivateField Avoid unused private fields such as 'JSP_URL_MODIFY_NEWSLETTER'. 270
ImmutableField Private field '_newsletterService' could be made final; it is only initialized in the declaration or constructor. 340
ImmutableField Private field '_newsletterTopicService' could be made final; it is only initialized in the declaration or constructor. 341
CallSuperInConstructor It is a good practice to call super() in a constructor 346349
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 364
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 364
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 386
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 390
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 390
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 425426
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 455
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 455
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 461462
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 493
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 493
ConfusingTernary Avoid if (x != y) ..; else ..; 533540
ConfusingTernary Avoid if (x != y) ..; else ..; 542549
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 575
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 575
CyclomaticComplexity The method 'getComposeNewsLetter(HttpServletRequest)' has a cyclomatic complexity of 10. 604685
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 609
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 625
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 625
UseCollectionIsEmpty Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 711
CyclomaticComplexity The method 'doCreateNewsLetter(HttpServletRequest)' has a cyclomatic complexity of 16. 753829
NPathComplexity The method 'doCreateNewsLetter(HttpServletRequest)' has an NPath complexity of 1344 753829
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 756
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 757
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 758
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 759
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 760
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 761
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 762
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 763
ConfusingTernary Avoid if (x != y) ..; else ..; 808815
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 842
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 842
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 842
CyclomaticComplexity The method 'doModifyNewsLetter(HttpServletRequest)' has a cyclomatic complexity of 13. 879952
NPathComplexity The method 'doModifyNewsLetter(HttpServletRequest)' has an NPath complexity of 336 879952
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 882
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 883
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 884
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 885
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 886
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 887
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 888
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 892
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 1026
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 1132
ConfusingTernary Avoid if (x != y) ..; else ..; 11671176
ShortVariable Avoid variables with short names like sb 1178
AppendCharacterWithChar Avoid appending characters as strings in StringBuffer.append. 1188
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 1246
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 1272
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 1305
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 13491350
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 1352
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 1352
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 1451
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 1451
ConfusingTernary Avoid if (x != y) ..; else ..; 14541461
UseStringBufferForStringAppends Prefer StringBuilder (non-synchronized) or StringBuffer (synchronized) over += for concatenating strings 1530
CyclomaticComplexity The method 'doConfirmSendNewsLetter(HttpServletRequest)' has a cyclomatic complexity of 11. 15451602
NPathComplexity The method 'doConfirmSendNewsLetter(HttpServletRequest)' has an NPath complexity of 324 15451602
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 1588
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 1698
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 1764
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 1765
ConfusingTernary Avoid if (x != y) ..; else ..; 17781811
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 1838
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 1838
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 1869
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 1869
CyclomaticComplexity The method 'doImportSubscribers(HttpServletRequest)' has a cyclomatic complexity of 19. 18851985
ExcessiveMethodLength Avoid really long methods. 18851985
NPathComplexity The method 'doImportSubscribers(HttpServletRequest)' has an NPath complexity of 1410 18851985
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 1891
UseCollectionIsEmpty Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 1929
ConfusingTernary Avoid if (x != y) ..; else ..; 19531972
PreserveStackTrace New exception is thrown in catch block, original stack trace may be lost 1983
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 2000
ShortVariable Avoid variables with short names like os 2015
ExcessiveMethodLength Avoid really long methods. 20392164
NcssCount The method 'getManageNewsletterTopics(HttpServletRequest)' has a NCSS line count of 78. 20392164
CyclomaticComplexity The method 'getManageNewsletterTopics(HttpServletRequest)' has a cyclomatic complexity of 15. 20392164
NPathComplexity The method 'getManageNewsletterTopics(HttpServletRequest)' has an NPath complexity of 1440 20392164
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 2084
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 2084
NullAssignment Assigning an Object to null is a code smell. Consider refactoring. 2106
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 21112112
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 2311
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 2311
LinguisticNaming Linguistics Antipattern - The method 'isWrongEmail' indicates linguistically it returns a boolean, but it returns 'String' 24202437
ForLoopCanBeForeach This for loop can be replaced by a foreach loop 24282434
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 2478
ForLoopCanBeForeach This for loop can be replaced by a foreach loop 24862494
UseTryWithResources Consider using a try-with-resources statement instead of explicitly closing the resource 25342561
LinguisticNaming Linguistics Antipattern - The setter 'setHtmlTemplateEmail' should not return any type except void linguistically 25772593
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 2579
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 2579
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 2604
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 2605

fr/paris/lutece/plugins/newsletter/web/NewsletterTemplateJspBean.java

Rule Violation Line
ExcessiveImports A high number of imports can indicate a high degree of coupling within an object. 34849
CyclomaticComplexity The class 'NewsletterTemplateJspBean' has a total cyclomatic complexity of 89 (highest 24). 94849
GodClass Possible God Class (WMC=89, ATFD=241, TCC=13.636%) 94849
UnusedPrivateField Avoid unused private fields such as 'MESSAGE_IMAGE_FILE_ALREADY_EXISTS'. 121
ImmutableField Private field '_newsletterTopicService' could be made final; it is only initialized in the declaration or constructor. 150
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 163
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 163
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 168
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 172
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 172
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 239
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 239
CyclomaticComplexity The method 'doCreateNewsletterTemplate(HttpServletRequest)' has a cyclomatic complexity of 17. 255318
AvoidCatchingGenericException Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block 312
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 343
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 343
NPathComplexity The method 'doModifyNewsletterTemplate(HttpServletRequest)' has an NPath complexity of 18722 360490
NcssCount The method 'doModifyNewsletterTemplate(HttpServletRequest)' has a NCSS line count of 67. 360490
ExcessiveMethodLength Avoid really long methods. 360490
CyclomaticComplexity The method 'doModifyNewsletterTemplate(HttpServletRequest)' has a cyclomatic complexity of 24. 360490
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 381
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 390
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 393
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 394
AvoidCatchingGenericException Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block 484
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 504
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 504
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 504
UseTryWithResources Consider using a try-with-resources statement instead of explicitly closing the resource 525575
ExcessiveMethodLength Avoid really long methods. 591702
NcssCount The method 'doModifyNewsletterTemplateFile(HttpServletRequest)' has a NCSS line count of 61. 591702
NPathComplexity The method 'doModifyNewsletterTemplateFile(HttpServletRequest)' has an NPath complexity of 273 591702
CyclomaticComplexity The method 'doModifyNewsletterTemplateFile(HttpServletRequest)' has a cyclomatic complexity of 14. 591702
UseTryWithResources Consider using a try-with-resources statement instead of explicitly closing the resource 594699
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 613
AvoidCatchingGenericException Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block 692
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 723

fr/paris/lutece/plugins/newsletter/web/portlet/NewsLetterArchivePortletJspBean.java

Rule Violation Line
MissingOverride The method 'getCreate(HttpServletRequest)' is missing an @Override annotation. 93108
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 100
MissingOverride The method 'doCreate(HttpServletRequest)' is missing an @Override annotation. 117150
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 119
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 123
MissingOverride The method 'getModify(HttpServletRequest)' is missing an @Override annotation. 159185
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 169
MissingOverride The method 'doModify(HttpServletRequest)' is missing an @Override annotation. 194227
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 199
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 250

fr/paris/lutece/plugins/newsletter/web/portlet/NewsLetterSubscriptionPortletJspBean.java

Rule Violation Line
MissingOverride The method 'getCreate(HttpServletRequest)' is missing an @Override annotation. 102118
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 110
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 111
MissingOverride The method 'doCreate(HttpServletRequest)' is missing an @Override annotation. 127161
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 129
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 133
MissingOverride The method 'getModify(HttpServletRequest)' is missing an @Override annotation. 170195
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 179
MissingOverride The method 'doModify(HttpServletRequest)' is missing an @Override annotation. 204237
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 209
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 260

Priority 4

fr/paris/lutece/plugins/newsletter/business/NewsLetterHome.java

Rule Violation Line
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'java.sql.Timestamp' due to existing import 'java.sql.Timestamp' 242

fr/paris/lutece/plugins/newsletter/business/Pair.java

Rule Violation Line
ShortClassName Avoid short class names like Pair 4681

fr/paris/lutece/plugins/newsletter/business/Subscriber.java

Rule Violation Line
BooleanGetMethodName A getX() method which returns a boolean should be named isX() 118121

fr/paris/lutece/plugins/newsletter/service/NewsletterFileService.java

Rule Violation Line
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'fr.paris.lutece.portal.service.util.AppLogService.error' due to existing import 'fr.paris.lutece.portal.service.util.AppLogService' 49
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'fr.paris.lutece.portal.service.util.AppLogService.error' due to existing import 'fr.paris.lutece.portal.service.util.AppLogService' 73

fr/paris/lutece/plugins/newsletter/util/HtmlDomDocNewsletter.java

Rule Violation Line
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.w3c.dom.Document' due to existing import 'org.w3c.dom.Document' 239

fr/paris/lutece/plugins/newsletter/util/NewsletterUtils.java

Rule Violation Line
UseVarargs Consider using varargs for methods or constructors which take an array the last parameter. 182
UseVarargs Consider using varargs for methods or constructors which take an array the last parameter. 197

fr/paris/lutece/plugins/newsletter/web/NewsletterJspBean.java

Rule Violation Line
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'java.util.Date' due to existing import 'java.util.Date' 1417
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'java.sql.Timestamp' due to existing import 'java.sql.Timestamp' 1417
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'java.util.Date' due to existing import 'java.util.Date' 1674
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'java.util.Date' due to existing import 'java.util.Date' 1737
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'java.util.Date' due to existing import 'java.util.Date' 1935
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'java.sql.Timestamp' due to existing import 'java.sql.Timestamp' 1935
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'java.util.ArrayList' due to existing import 'java.util.ArrayList' 2129

fr/paris/lutece/plugins/newsletter/web/NewsletterTemplateJspBean.java

Rule Violation Line
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'fr.paris.lutece.plugins.newsletter.util.NewsLetterConstants.MARK_TEMPLATE_FILE' due to existing import 'fr.paris.lutece.plugins.newsletter.util.NewsLetterConstants' 542

Files

fr/paris/lutece/plugins/newsletter/business/AwaitingActivationDAO.java

Rule Violation Priority Line
MissingOverride The method 'delete(int, int, Plugin)' is missing an @Override annotation. 3 5968
MissingOverride The method 'exists(int, int, Plugin)' is missing an @Override annotation. 3 8194
MissingOverride The method 'insert(int, int, Plugin)' is missing an @Override annotation. 3 106115

fr/paris/lutece/plugins/newsletter/business/INewsLetterDAO.java

Rule Violation Priority Line
TooManyMethods This class has too many methods, consider refactoring it. 3 50265

fr/paris/lutece/plugins/newsletter/business/ISendingNewsLetterDAO.java

Rule Violation Priority Line
LooseCoupling Avoid using implementation types like 'ArrayList'; use the interface instead 3 117
LooseCoupling Avoid using implementation types like 'ArrayList'; use the interface instead 3 117

fr/paris/lutece/plugins/newsletter/business/NewsLetter.java

Rule Violation Priority Line
TooManyFields Too many fields 3 46445
AvoidSynchronizedAtMethodLevel Use block level rather than method level synchronization 3 7786
MissingOverride The method 'getWorkgroup()' is missing an @Override annotation. 3 326329
MissingOverride The method 'getResourceId()' is missing an @Override annotation. 3 410413
AddEmptyString Do not add empty strings 3 412
MissingOverride The method 'getResourceTypeCode()' is missing an @Override annotation. 3 420423

fr/paris/lutece/plugins/newsletter/business/NewsLetterDAO.java

Rule Violation Priority Line
TooManyMethods This class has too many methods, consider refactoring it. 3 50527
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 258
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 315
ConfusingTernary Avoid if (x != y) ..; else ..; 3 468476
ConfusingTernary Avoid if (x != y) ..; else ..; 3 498506

fr/paris/lutece/plugins/newsletter/business/NewsLetterHome.java

Rule Violation Priority Line
TooManyMethods This class has too many methods, consider refactoring it. 3 49316
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'java.sql.Timestamp' due to existing import 'java.sql.Timestamp' 4 242

fr/paris/lutece/plugins/newsletter/business/NewsLetterTemplate.java

Rule Violation Priority Line
FieldNamingConventions The field name 'strFileKey' doesn't match '_[a-z][a-zA-Z0-9]*' 1 54
AvoidSynchronizedAtMethodLevel Use block level rather than method level synchronization 3 6269
MissingOverride The method 'getWorkgroup()' is missing an @Override annotation. 3 181184
MissingOverride The method 'getResourceId()' is missing an @Override annotation. 3 202205
MissingOverride The method 'getResourceTypeCode()' is missing an @Override annotation. 3 212215

fr/paris/lutece/plugins/newsletter/business/NewsLetterTemplateDAO.java

Rule Violation Priority Line
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 73
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 134
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 274
ConfusingTernary Avoid if (x != y) ..; else ..; 3 311319

fr/paris/lutece/plugins/newsletter/business/NewsletterPropertiesDAO.java

Rule Violation Priority Line
MissingOverride The method 'load(Plugin)' is missing an @Override annotation. 3 5783
MissingOverride The method 'store(NewsLetterProperties, Plugin)' is missing an @Override annotation. 3 93102

fr/paris/lutece/plugins/newsletter/business/NewsletterTemplateRemovalListener.java

Rule Violation Priority Line
ShortVariable Avoid variables with short names like id 3 63

fr/paris/lutece/plugins/newsletter/business/NewsletterTemplateWorkgroupRemovalListener.java

Rule Violation Priority Line
MissingOverride The method 'canBeRemoved(String)' is missing an @Override annotation. 3 5876
MissingOverride The method 'getRemovalRefusedMessage(String, Locale)' is missing an @Override annotation. 3 8791

fr/paris/lutece/plugins/newsletter/business/NewsletterWorkgroupRemovalListener.java

Rule Violation Priority Line
MissingOverride The method 'canBeRemoved(String)' is missing an @Override annotation. 3 5876
MissingOverride The method 'getRemovalRefusedMessage(String, Locale)' is missing an @Override annotation. 3 8791

fr/paris/lutece/plugins/newsletter/business/Pair.java

Rule Violation Priority Line
ShortClassName Avoid short class names like Pair 4 4681
ImmutableField Private field '_first' could be made final; it is only initialized in the declaration or constructor. 3 48
ImmutableField Private field '_second' could be made final; it is only initialized in the declaration or constructor. 3 49

fr/paris/lutece/plugins/newsletter/business/SendingNewsLetterDAO.java

Rule Violation Priority Line
MissingOverride The method 'insert(SendingNewsLetter, Plugin)' is missing an @Override annotation. 3 6883
MissingOverride The method 'delete(int, Plugin)' is missing an @Override annotation. 3 9399
MissingOverride The method 'load(int, Plugin)' is missing an @Override annotation. 3 110133
MissingOverride The method 'store(SendingNewsLetter, Plugin)' is missing an @Override annotation. 3 143150
CommentDefaultAccessModifier To avoid mistakes add a comment at the beginning of the checkPrimaryKey method if you want a default access modifier 3 161177
DefaultPackage Use explicit scoping instead of the default package private level 3 161177
CommentDefaultAccessModifier To avoid mistakes add a comment at the beginning of the newPrimaryKey method if you want a default access modifier 3 186204
DefaultPackage Use explicit scoping instead of the default package private level 3 186204
MissingOverride The method 'selectLastSendingForNewsletterId(int, Plugin)' is missing an @Override annotation. 3 215237
MissingOverride The method 'selectAllLastSendingForNewsletterId(int, Plugin)' is missing an @Override annotation. 3 248272
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 251
MissingOverride The method 'findAllSendings(Plugin)' is missing an @Override annotation. 3 281304
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 283
LooseCoupling Avoid using implementation types like 'ArrayList'; use the interface instead 3 315
MissingOverride The method 'findSendingsByIds(ArrayList, Plugin)' is missing an @Override annotation. 3 315340
LooseCoupling Avoid using implementation types like 'ArrayList'; use the interface instead 3 315
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 317

fr/paris/lutece/plugins/newsletter/business/SendingNewsLetterHome.java

Rule Violation Priority Line
LooseCoupling Avoid using implementation types like 'ArrayList'; use the interface instead 3 168
LooseCoupling Avoid using implementation types like 'ArrayList'; use the interface instead 3 168

fr/paris/lutece/plugins/newsletter/business/Subscriber.java

Rule Violation Priority Line
UseLocaleWithCaseConversions When doing a String.toLowerCase()/toUpperCase() call, use a Locale 3 89
BooleanGetMethodName A getX() method which returns a boolean should be named isX() 4 118121

fr/paris/lutece/plugins/newsletter/business/SubscriberDAO.java

Rule Violation Priority Line
TooManyMethods This class has too many methods, consider refactoring it. 3 46421
MissingOverride The method 'insert(Subscriber, Plugin)' is missing an @Override annotation. 3 7284
MissingOverride The method 'delete(int, Plugin)' is missing an @Override annotation. 3 94100
MissingOverride The method 'load(int, Plugin)' is missing an @Override annotation. 3 111128
CommentDefaultAccessModifier To avoid mistakes add a comment at the beginning of the checkPrimaryKey method if you want a default access modifier 3 139155
DefaultPackage Use explicit scoping instead of the default package private level 3 139155
DefaultPackage Use explicit scoping instead of the default package private level 3 164183
CommentDefaultAccessModifier To avoid mistakes add a comment at the beginning of the newPrimaryKey method if you want a default access modifier 3 164183
MissingOverride The method 'selectAll(Plugin)' is missing an @Override annotation. 3 192211
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 197
MissingOverride The method 'selectByEmail(String, Plugin)' is missing an @Override annotation. 3 222240
UseLocaleWithCaseConversions When doing a String.toLowerCase()/toUpperCase() call, use a Locale 3 225
MissingOverride The method 'selectSubscribers(int, Plugin)' is missing an @Override annotation. 3 251272
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 257
MissingOverride The method 'selectSubscribers(int, String, int, int, Plugin)' is missing an @Override annotation. 3 289316
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 300
MissingOverride The method 'selectSubscribersForSending(int, String, int, int, Plugin)' is missing an @Override annotation. 3 333360
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 344
MissingOverride The method 'selectNewsLetters(int, Plugin)' is missing an @Override annotation. 3 371392
MissingOverride The method 'selectSubscribersList(Plugin)' is missing an @Override annotation. 3 401420
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 407

fr/paris/lutece/plugins/newsletter/business/portlet/INewsLetterArchivePortletDAO.java

Rule Violation Priority Line
LooseCoupling Avoid using implementation types like 'ArrayList'; use the interface instead 3 79

fr/paris/lutece/plugins/newsletter/business/portlet/NewsLetterArchivePortlet.java

Rule Violation Priority Line
MissingOverride The method 'getXmlDocument(HttpServletRequest)' is missing an @Override annotation. 3 6871
MissingOverride The method 'getXml(HttpServletRequest)' is missing an @Override annotation. 3 80101
MissingOverride The method 'remove()' is missing an @Override annotation. 3 114117

fr/paris/lutece/plugins/newsletter/business/portlet/NewsLetterArchivePortletDAO.java

Rule Violation Priority Line
MissingOverride The method 'insert(Portlet)' is missing an @Override annotation. 3 6568
MissingOverride The method 'delete(int)' is missing an @Override annotation. 3 7783
MissingOverride The method 'load(int)' is missing an @Override annotation. 3 92110
MissingOverride The method 'store(Portlet)' is missing an @Override annotation. 3 118121
MissingOverride The method 'insertSending(int, int, Plugin)' is missing an @Override annotation. 3 131139
MissingOverride The method 'removeSending(int, int, Plugin)' is missing an @Override annotation. 3 149157
LooseCoupling Avoid using implementation types like 'ArrayList'; use the interface instead 3 166
MissingOverride The method 'findSendingsInPortlet(int, Plugin)' is missing an @Override annotation. 3 166182
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 168

fr/paris/lutece/plugins/newsletter/business/portlet/NewsLetterArchivePortletHome.java

Rule Violation Priority Line
AssignmentToNonFinalStatic Possible unsafe assignment to a non-final static field in a constructor. 3 50
CallSuperInConstructor It is a good practice to call super() in a constructor 3 5864
MissingOverride The method 'getPortletTypeId()' is missing an @Override annotation. 3 7177
UnnecessaryLocalBeforeReturn Consider simply returning the value vs storing it in local variable 'strPortletTypeId' 3 76
MissingOverride The method 'getDAO()' is missing an @Override annotation. 3 9497
LooseCoupling Avoid using implementation types like 'ArrayList'; use the interface instead 3 132

fr/paris/lutece/plugins/newsletter/business/portlet/NewsLetterSubscriptionPortlet.java

Rule Violation Priority Line
MissingOverride The method 'compare(NewsLetter, NewsLetter)' is missing an @Override annotation. 3 9699
MissingOverride The method 'setPluginName(String)' is missing an @Override annotation. 3 112118
MissingOverride The method 'getXmlDocument(HttpServletRequest)' is missing an @Override annotation. 3 127130
NPathComplexity The method 'getXml(HttpServletRequest)' has an NPath complexity of 960 3 139243
ExcessiveMethodLength Avoid really long methods. 3 139243
CyclomaticComplexity The method 'getXml(HttpServletRequest)' has a cyclomatic complexity of 12. 3 139243
MissingOverride The method 'getXml(HttpServletRequest)' is missing an @Override annotation. 3 139243
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 175
UnnecessaryLocalBeforeReturn Consider simply returning the value vs storing it in local variable 'str' 3 242
MissingOverride The method 'remove()' is missing an @Override annotation. 3 256259

fr/paris/lutece/plugins/newsletter/business/portlet/NewsLetterSubscriptionPortletDAO.java

Rule Violation Priority Line
MissingOverride The method 'insert(Portlet)' is missing an @Override annotation. 3 6568
MissingOverride The method 'delete(int)' is missing an @Override annotation. 3 7783
MissingOverride The method 'load(int)' is missing an @Override annotation. 3 92110
MissingOverride The method 'store(Portlet)' is missing an @Override annotation. 3 118121
MissingOverride The method 'insertSubscription(int, int)' is missing an @Override annotation. 3 131139
MissingOverride The method 'removeSubscription(int, int)' is missing an @Override annotation. 3 149157
MissingOverride The method 'findSelectedNewsletters(int)' is missing an @Override annotation. 3 166182
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 168

fr/paris/lutece/plugins/newsletter/business/portlet/NewsLetterSubscriptionPortletHome.java

Rule Violation Priority Line
MissingOverride The method 'getPortletTypeId()' is missing an @Override annotation. 3 5965
UnnecessaryLocalBeforeReturn Consider simply returning the value vs storing it in local variable 'strPortletTypeId' 3 64
MissingOverride The method 'getDAO()' is missing an @Override annotation. 3 8285

fr/paris/lutece/plugins/newsletter/business/topic/FreeHtmlTopicDao.java

Rule Violation Priority Line
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 121
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 124
UseCollectionIsEmpty Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 3 126

fr/paris/lutece/plugins/newsletter/business/topic/NewsletterTopic.java

Rule Violation Priority Line
ShortVariable Avoid variables with short names like o 3 192
CyclomaticComplexity The method 'compareTo(NewsletterTopic)' has a cyclomatic complexity of 12. 3 192228
ShortVariable Avoid variables with short names like o 3 250

fr/paris/lutece/plugins/newsletter/business/topic/NewsletterTopicDao.java

Rule Violation Priority Line
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 139
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 178

fr/paris/lutece/plugins/newsletter/business/topic/NewsletterTopicHome.java

Rule Violation Priority Line
UseCollectionIsEmpty Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 3 151
AvoidLiteralsInIfCondition Avoid using Literals in Conditional Statements 3 154

fr/paris/lutece/plugins/newsletter/service/NewsLetterArchiveService.java

Rule Violation Priority Line
AssignmentToNonFinalStatic Possible unsafe assignment to a non-final static field in a constructor. 3 64
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 98
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 100
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 117
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 117

fr/paris/lutece/plugins/newsletter/service/NewsLetterRegistrationService.java

Rule Violation Priority Line
ExcessiveImports A high number of imports can indicate a high degree of coupling within an object. 3 34435
AssignmentToNonFinalStatic Possible unsafe assignment to a non-final static field in a constructor. 3 93
CyclomaticComplexity The method 'doSubscription(HttpServletRequest)' has a cyclomatic complexity of 13. 3 129237
NPathComplexity The method 'doSubscription(HttpServletRequest)' has an NPath complexity of 579 3 129237
ExcessiveMethodLength Avoid really long methods. 3 129237
CollapsibleIfStatements These nested if statements could be combined 3 153157
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 212
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 212
CyclomaticComplexity The method 'doConfirmSubscribe(HttpServletRequest)' has a cyclomatic complexity of 10. 3 247328
CyclomaticComplexity The method 'doUnSubscribe(HttpServletRequest)' has a cyclomatic complexity of 10. 3 338381
InsufficientStringBufferDeclaration StringBuffer constructor is initialized with size 16, but has at least 104 characters appended. 3 410
ConsecutiveLiteralAppends StringBuffer (or StringBuilder).append is called 2 consecutive times with literals. Use a single append with a single combined String. 3 411

fr/paris/lutece/plugins/newsletter/service/NewsletterFileService.java

Rule Violation Priority Line
CommentRequired Header comments are required 3 14101
CommentRequired Public method and constructor comments are required 3 1627
CommentRequired Public method and constructor comments are required 3 2931
CommentRequired Public method and constructor comments are required 3 3251
ConfusingTernary Avoid if (x != y) ..; else ..; 3 3845
AvoidCatchingGenericException Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block 3 47
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'fr.paris.lutece.portal.service.util.AppLogService.error' due to existing import 'fr.paris.lutece.portal.service.util.AppLogService' 4 49
CommentRequired Public method and constructor comments are required 3 5375
ConfusingTernary Avoid if (x != y) ..; else ..; 3 6168
AvoidCatchingGenericException Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block 3 71
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'fr.paris.lutece.portal.service.util.AppLogService.error' due to existing import 'fr.paris.lutece.portal.service.util.AppLogService' 4 73
CommentRequired Public method and constructor comments are required 3 7788
CommentRequired Public method and constructor comments are required 3 89100

fr/paris/lutece/plugins/newsletter/service/NewsletterPlugin.java

Rule Violation Priority Line
MissingOverride The method 'init()' is missing an @Override annotation. 3 5358

fr/paris/lutece/plugins/newsletter/service/NewsletterResourceIdService.java

Rule Violation Priority Line
CallSuperInConstructor It is a good practice to call super() in a constructor 3 124127
MissingOverride The method 'register()' is missing an @Override annotation. 3 132196
ShortVariable Avoid variables with short names like rt 3 134
ShortVariable Avoid variables with short names like p 3 140
MissingOverride The method 'getResourceIdList(Locale)' is missing an @Override annotation. 3 205208
MissingOverride The method 'getTitle(String, Locale)' is missing an @Override annotation. 3 219229
ConfusingTernary Avoid if (x != y) ..; else ..; 3 228

fr/paris/lutece/plugins/newsletter/service/NewsletterService.java

Rule Violation Priority Line
ExcessiveImports A high number of imports can indicate a high degree of coupling within an object. 3 34541
GodClass Possible God Class (WMC=51, ATFD=65, TCC=0.000%) 3 83541
ConfusingTernary Avoid if (x != y) ..; else ..; 3 143151
ShortVariable Avoid variables with short names like t 3 156
UseCollectionIsEmpty Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 3 167
UnnecessaryWrapperObjectCreation Unnecessary wrapper object creation 3 206
IdenticalCatchBranches 'catch' branch identical to 'UnsupportedEncodingException' branch 3 242245
CyclomaticComplexity The method 'generateNewsletterHtmlCode(NewsLetter, int, String, AdminUser, Locale)' has a cyclomatic complexity of 13. 3 301381
NPathComplexity The method 'generateNewsletterHtmlCode(NewsLetter, int, String, AdminUser, Locale)' has an NPath complexity of 300 3 301381
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 311
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 311
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 319
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 348
LocalVariableNamingConventions The local variable name '_bTemplate' doesn't match '[a-z][a-zA-Z0-9]*' 1 367

fr/paris/lutece/plugins/newsletter/service/NewsletterTemplateResourceIdService.java

Rule Violation Priority Line
CallSuperInConstructor It is a good practice to call super() in a constructor 3 7073
MissingOverride The method 'register()' is missing an @Override annotation. 3 78102
ShortVariable Avoid variables with short names like rt 3 80
ShortVariable Avoid variables with short names like p 3 86
MissingOverride The method 'getResourceIdList(Locale)' is missing an @Override annotation. 3 111114
MissingOverride The method 'getTitle(String, Locale)' is missing an @Override annotation. 3 125136
ConfusingTernary Avoid if (x != y) ..; else ..; 3 135

fr/paris/lutece/plugins/newsletter/service/SubscriberCleaningDaemon.java

Rule Violation Priority Line
MissingOverride The method 'run()' is missing an @Override annotation. 3 4649

fr/paris/lutece/plugins/newsletter/service/topic/FreeHtmlTopicService.java

Rule Violation Priority Line
MissingOverride The method 'hasConfiguration()' is missing an @Override annotation. 3 103106
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 115
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 115
ConfusingTernary Avoid if (x != y) ..; else ..; 3 193200

fr/paris/lutece/plugins/newsletter/service/topic/NewsletterTopicService.java

Rule Violation Priority Line
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 222

fr/paris/lutece/plugins/newsletter/util/HtmlDomDocNewsletter.java

Rule Violation Priority Line
ImmutableField Private field '_strBaseUrl' could be made final; it is only initialized in the declaration or constructor. 3 124
ShortVariable Avoid variables with short names like tf 3 208
IdenticalCatchBranches 'catch' branch identical to 'TransformerConfigurationException' branch 3 222227
UnnecessaryLocalBeforeReturn Consider simply returning the value vs storing it in local variable 'stringResult' 3 231
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.w3c.dom.Document' due to existing import 'org.w3c.dom.Document' 4 239
ImmutableField Private field '_strTagName' could be made final; it is only initialized in the declaration or constructor. 3 259
ImmutableField Private field '_strAttributeName' could be made final; it is only initialized in the declaration or constructor. 3 260
ImmutableField Private field '_strTestedAttributeName' could be made final; it is only initialized in the declaration or constructor. 3 261
ImmutableField Private field '_strTestedAttributeValue' could be made final; it is only initialized in the declaration or constructor. 3 262

fr/paris/lutece/plugins/newsletter/util/NewsLetterConstants.java

Rule Violation Priority Line
ClassNamingConventions The utility class name 'NewsLetterConstants' doesn't match '[A-Z][a-zA-Z0-9]+(Utils?|Helper|Home|Service)' 1 41168
FieldNamingConventions The public constant name 'PROPERTY_FileProviderStore' doesn't match '[A-Z][A-Z_0-9]*' 1 47
FieldDeclarationsShouldBeAtStartOfClass Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes. 3 165
FieldDeclarationsShouldBeAtStartOfClass Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes. 3 166
FieldDeclarationsShouldBeAtStartOfClass Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes. 3 167

fr/paris/lutece/plugins/newsletter/util/NewsletterUtils.java

Rule Violation Priority Line
UseStringBufferForStringAppends Prefer StringBuilder (non-synchronized) or StringBuffer (synchronized) over += for concatenating strings 3 85
UseStringBufferForStringAppends Prefer StringBuilder (non-synchronized) or StringBuffer (synchronized) over += for concatenating strings 3 86
PositionLiteralsFirstInComparisons Position literals first in String comparisons 3 149
ConfusingTernary Avoid if (x != y) ..; else ..; 3 157164
UseVarargs Consider using varargs for methods or constructors which take an array the last parameter. 4 182
UseVarargs Consider using varargs for methods or constructors which take an array the last parameter. 4 197
CommentRequired Public method and constructor comments are required 3 227230

fr/paris/lutece/plugins/newsletter/web/NewsLetterApp.java

Rule Violation Priority Line
MissingSerialVersionUID Classes implementing Serializable should set a serialVersionUID 3 65277
UncommentedEmptyMethodBody Document empty method body 3 100101
MissingOverride The method 'getPage(HttpServletRequest, int, Plugin)' is missing an @Override annotation. 3 116151
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 121
ConfusingTernary Avoid if (x != y) ..; else ..; 3 166197
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 178
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 266
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 266

fr/paris/lutece/plugins/newsletter/web/NewsletterJspBean.java

Rule Violation Priority Line
ExcessiveImports A high number of imports can indicate a high degree of coupling within an object. 3 342631
ExcessivePublicCount This class has a bunch of public methods and attributes 3 342631
ExcessiveClassLength Avoid really long classes. 3 1172631
CyclomaticComplexity The class 'NewsletterJspBean' has a total cyclomatic complexity of 231 (highest 19). 3 1172631
TooManyMethods This class has too many methods, consider refactoring it. 3 1182631
UnusedPrivateField Avoid unused private fields such as 'JSP_URL_MODIFY_NEWSLETTER'. 3 270
ImmutableField Private field '_newsletterService' could be made final; it is only initialized in the declaration or constructor. 3 340
ImmutableField Private field '_newsletterTopicService' could be made final; it is only initialized in the declaration or constructor. 3 341
CallSuperInConstructor It is a good practice to call super() in a constructor 3 346349
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 364
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 364
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 386
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 390
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 390
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 425426
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 455
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 455
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 461462
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 493
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 493
ConfusingTernary Avoid if (x != y) ..; else ..; 3 533540
ConfusingTernary Avoid if (x != y) ..; else ..; 3 542549
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 575
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 575
CyclomaticComplexity The method 'getComposeNewsLetter(HttpServletRequest)' has a cyclomatic complexity of 10. 3 604685
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 609
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 625
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 625
UseCollectionIsEmpty Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 3 711
CyclomaticComplexity The method 'doCreateNewsLetter(HttpServletRequest)' has a cyclomatic complexity of 16. 3 753829
NPathComplexity The method 'doCreateNewsLetter(HttpServletRequest)' has an NPath complexity of 1344 3 753829
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 756
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 757
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 758
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 759
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 760
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 761
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 762
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 763
ConfusingTernary Avoid if (x != y) ..; else ..; 3 808815
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 842
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 842
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 842
CyclomaticComplexity The method 'doModifyNewsLetter(HttpServletRequest)' has a cyclomatic complexity of 13. 3 879952
NPathComplexity The method 'doModifyNewsLetter(HttpServletRequest)' has an NPath complexity of 336 3 879952
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 882
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 883
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 884
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 885
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 886
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 887
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 888
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 892
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 1026
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 1132
ConfusingTernary Avoid if (x != y) ..; else ..; 3 11671176
ShortVariable Avoid variables with short names like sb 3 1178
AppendCharacterWithChar Avoid appending characters as strings in StringBuffer.append. 3 1188
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 1246
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 1272
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 1305
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 13491350
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 1352
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 1352
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'java.util.Date' due to existing import 'java.util.Date' 4 1417
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'java.sql.Timestamp' due to existing import 'java.sql.Timestamp' 4 1417
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 1451
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 1451
ConfusingTernary Avoid if (x != y) ..; else ..; 3 14541461
UseStringBufferForStringAppends Prefer StringBuilder (non-synchronized) or StringBuffer (synchronized) over += for concatenating strings 3 1530
CyclomaticComplexity The method 'doConfirmSendNewsLetter(HttpServletRequest)' has a cyclomatic complexity of 11. 3 15451602
NPathComplexity The method 'doConfirmSendNewsLetter(HttpServletRequest)' has an NPath complexity of 324 3 15451602
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 1588
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'java.util.Date' due to existing import 'java.util.Date' 4 1674
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 1698
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'java.util.Date' due to existing import 'java.util.Date' 4 1737
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 1764
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 1765
ConfusingTernary Avoid if (x != y) ..; else ..; 3 17781811
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 1838
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 1838
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 1869
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 1869
CyclomaticComplexity The method 'doImportSubscribers(HttpServletRequest)' has a cyclomatic complexity of 19. 3 18851985
ExcessiveMethodLength Avoid really long methods. 3 18851985
NPathComplexity The method 'doImportSubscribers(HttpServletRequest)' has an NPath complexity of 1410 3 18851985
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 1891
UseCollectionIsEmpty Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 3 1929
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'java.util.Date' due to existing import 'java.util.Date' 4 1935
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'java.sql.Timestamp' due to existing import 'java.sql.Timestamp' 4 1935
ConfusingTernary Avoid if (x != y) ..; else ..; 3 19531972
PreserveStackTrace New exception is thrown in catch block, original stack trace may be lost 3 1983
AvoidThrowingRawExceptionTypes Avoid throwing raw exception types. 1 1983
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 2000
ShortVariable Avoid variables with short names like os 3 2015
ExcessiveMethodLength Avoid really long methods. 3 20392164
NcssCount The method 'getManageNewsletterTopics(HttpServletRequest)' has a NCSS line count of 78. 3 20392164
CyclomaticComplexity The method 'getManageNewsletterTopics(HttpServletRequest)' has a cyclomatic complexity of 15. 3 20392164
NPathComplexity The method 'getManageNewsletterTopics(HttpServletRequest)' has an NPath complexity of 1440 3 20392164
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 2084
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 2084
NullAssignment Assigning an Object to null is a code smell. Consider refactoring. 3 2106
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 21112112
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'java.util.ArrayList' due to existing import 'java.util.ArrayList' 4 2129
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 2311
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 2311
LinguisticNaming Linguistics Antipattern - The method 'isWrongEmail' indicates linguistically it returns a boolean, but it returns 'String' 3 24202437
ForLoopCanBeForeach This for loop can be replaced by a foreach loop 3 24282434
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 2478
ForLoopCanBeForeach This for loop can be replaced by a foreach loop 3 24862494
UseTryWithResources Consider using a try-with-resources statement instead of explicitly closing the resource 3 25342561
AvoidFileStream Avoid instantiating FileInputStream, FileOutputStream, FileReader, or FileWriter 1 2536
LinguisticNaming Linguistics Antipattern - The setter 'setHtmlTemplateEmail' should not return any type except void linguistically 3 25772593
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 2579
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 2579
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 2604
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 2605

fr/paris/lutece/plugins/newsletter/web/NewsletterTemplateJspBean.java

Rule Violation Priority Line
ExcessiveImports A high number of imports can indicate a high degree of coupling within an object. 3 34849
CyclomaticComplexity The class 'NewsletterTemplateJspBean' has a total cyclomatic complexity of 89 (highest 24). 3 94849
GodClass Possible God Class (WMC=89, ATFD=241, TCC=13.636%) 3 94849
UnusedPrivateField Avoid unused private fields such as 'MESSAGE_IMAGE_FILE_ALREADY_EXISTS'. 3 121
ImmutableField Private field '_newsletterTopicService' could be made final; it is only initialized in the declaration or constructor. 3 150
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 163
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 163
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 168
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 172
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 172
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 239
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 239
CyclomaticComplexity The method 'doCreateNewsletterTemplate(HttpServletRequest)' has a cyclomatic complexity of 17. 3 255318
AvoidCatchingGenericException Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block 3 312
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 343
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 343
NPathComplexity The method 'doModifyNewsletterTemplate(HttpServletRequest)' has an NPath complexity of 18722 3 360490
NcssCount The method 'doModifyNewsletterTemplate(HttpServletRequest)' has a NCSS line count of 67. 3 360490
ExcessiveMethodLength Avoid really long methods. 3 360490
CyclomaticComplexity The method 'doModifyNewsletterTemplate(HttpServletRequest)' has a cyclomatic complexity of 24. 3 360490
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 381
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 390
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 393
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 394
AvoidCatchingGenericException Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block 3 484
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 504
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 504
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 504
UseTryWithResources Consider using a try-with-resources statement instead of explicitly closing the resource 3 525575
AvoidFileStream Avoid instantiating FileInputStream, FileOutputStream, FileReader, or FileWriter 1 534
AvoidFileStream Avoid instantiating FileInputStream, FileOutputStream, FileReader, or FileWriter 1 537
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'fr.paris.lutece.plugins.newsletter.util.NewsLetterConstants.MARK_TEMPLATE_FILE' due to existing import 'fr.paris.lutece.plugins.newsletter.util.NewsLetterConstants' 4 542
AvoidFileStream Avoid instantiating FileInputStream, FileOutputStream, FileReader, or FileWriter 1 547
ExcessiveMethodLength Avoid really long methods. 3 591702
NcssCount The method 'doModifyNewsletterTemplateFile(HttpServletRequest)' has a NCSS line count of 61. 3 591702
NPathComplexity The method 'doModifyNewsletterTemplateFile(HttpServletRequest)' has an NPath complexity of 273 3 591702
CyclomaticComplexity The method 'doModifyNewsletterTemplateFile(HttpServletRequest)' has a cyclomatic complexity of 14. 3 591702
UseTryWithResources Consider using a try-with-resources statement instead of explicitly closing the resource 3 594699
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 613
AvoidCatchingGenericException Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block 3 692
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 723

fr/paris/lutece/plugins/newsletter/web/portlet/NewsLetterArchivePortletJspBean.java

Rule Violation Priority Line
MissingOverride The method 'getCreate(HttpServletRequest)' is missing an @Override annotation. 3 93108
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 100
MissingOverride The method 'doCreate(HttpServletRequest)' is missing an @Override annotation. 3 117150
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 119
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 123
MissingOverride The method 'getModify(HttpServletRequest)' is missing an @Override annotation. 3 159185
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 169
MissingOverride The method 'doModify(HttpServletRequest)' is missing an @Override annotation. 3 194227
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 199
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 250
IntegerInstantiation Avoid instantiating Integer objects. Call Integer.valueOf() instead. 2 267

fr/paris/lutece/plugins/newsletter/web/portlet/NewsLetterSubscriptionPortletJspBean.java

Rule Violation Priority Line
MissingOverride The method 'getCreate(HttpServletRequest)' is missing an @Override annotation. 3 102118
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 110
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 111
MissingOverride The method 'doCreate(HttpServletRequest)' is missing an @Override annotation. 3 127161
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 129
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 133
MissingOverride The method 'getModify(HttpServletRequest)' is missing an @Override annotation. 3 170195
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 179
MissingOverride The method 'doModify(HttpServletRequest)' is missing an @Override annotation. 3 204237
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 209
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 260
IntegerInstantiation Avoid instantiating Integer objects. Call Integer.valueOf() instead. 2 277