Fork me on GitHub

PMD Results

The following document contains the results of PMD 5.5.1.

Files

fr/paris/lutece/plugins/calendar/business/CalendarDAO.java

Violation Line
Possible God class (WMC=117, ATFD=321, TCC=0.0) 341561
The class 'CalendarDAO' has a Cyclomatic Complexity of 3 (Highest = 23). 601561
Avoid really long classes. 601561
The class 'CalendarDAO' has a Modified Cyclomatic Complexity of 3 (Highest = 23). 601561
The class 'CalendarDAO' has a Standard Cyclomatic Complexity of 3 (Highest = 23). 601561
The String literal " FROM calendar_events_occurrences a, calendar_events b" appears 4 times in this file; the first occurrence is on line 88 88
Unnecessary use of fully qualified name 'java.sql.Date' due to existing import 'java.sql.Date' 221
Unnecessary use of fully qualified name 'java.sql.Date' due to existing import 'java.sql.Date' 222
Avoid concatenating nonliterals in a StringBuffer/StringBuilder constructor or append(). 235
Unnecessary use of fully qualified name 'java.sql.Date' due to existing import 'java.sql.Date' 275
Unnecessary use of fully qualified name 'java.sql.Date' due to existing import 'java.sql.Date' 279
Avoid concatenating nonliterals in a StringBuffer/StringBuilder constructor or append(). 297
Avoid using Literals in Conditional Statements 479
The String literal "ASC" appears 5 times in this file; the first occurrence is on line 481 481
The String literal "DESC" appears 5 times in this file; the first occurrence is on line 485 485
Use explicit scoping instead of the default package private level 523541
Avoid reassigning parameters such as 'event' 548
Avoid variables with short names like i 554
Unnecessary use of fully qualified name 'java.sql.Date' due to existing import 'java.sql.Date' 570
Unnecessary use of fully qualified name 'java.sql.Date' due to existing import 'java.sql.Date' 604
Avoid using Literals in Conditional Statements 631
Avoid using Literals in Conditional Statements 679
Avoid concatenating nonliterals in a StringBuffer/StringBuilder constructor or append(). 1013
Avoid concatenating nonliterals in a StringBuffer/StringBuilder constructor or append(). 1061
Avoid really long methods. 12311359
The method 'getDaoFromFilter' has a Standard Cyclomatic Complexity of 23. 12311359
The method 'getDaoFromFilter' has a Modified Cyclomatic Complexity of 23. 12311359
The method getDaoFromFilter() has an NPath complexity of 926100 12311359
The method 'getDaoFromFilter' has a Cyclomatic Complexity of 23. 12311359
Avoid using Literals in Conditional Statements 1312
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 1321
debug logging that involves string concatenation should be guarded with isDebugEnabled() checks 1323
debug logging that involves string concatenation should be guarded with isDebugEnabled() checks 1333
debug logging that involves string concatenation should be guarded with isDebugEnabled() checks 1343
debug logging that involves string concatenation should be guarded with isDebugEnabled() checks 1353
Unnecessary use of fully qualified name 'java.sql.Date' due to existing import 'java.sql.Date' 1407
Avoid using Literals in Conditional Statements 1434
Avoid using Literals in Conditional Statements 1497

fr/paris/lutece/plugins/calendar/business/CalendarFilter.java

Violation Line
Returning '_arrayCategoriesId' may expose an internal array. 87
Consider using varargs for methods or constructors which take an array the last parameter. 93
The user-supplied array 'arrayCategoriesId' is stored directly. 93
Returning '_arrayId' may expose an internal array. 103
Consider using varargs for methods or constructors which take an array the last parameter. 109
The user-supplied array 'arrayId' is stored directly. 109
Returning '_arrayCalendarId' may expose an internal array. 119
The user-supplied array 'calendarId' is stored directly. 125
Consider using varargs for methods or constructors which take an array the last parameter. 125

fr/paris/lutece/plugins/calendar/business/CalendarSubscriber.java

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

fr/paris/lutece/plugins/calendar/business/CalendarSubscriberDAO.java

Violation Line
Use explicit scoping instead of the default package private level 153169
Use explicit scoping instead of the default package private level 177196
When doing a String.toLowerCase()/toUpperCase() call, use a Locale 234

fr/paris/lutece/plugins/calendar/business/MultiAgenda.java

Violation Line
Private field '_listAgendas' could be made final; it is only initialized in the declaration or constructor. 53
Document empty constructor 5860
Avoid unnecessary constructors - the compiler will generate these for you 5860
Return an empty array rather than null. 222239

fr/paris/lutece/plugins/calendar/business/MultiAgendaEvent.java

Violation Line
It is a good practice to call super() in a constructor 5064

fr/paris/lutece/plugins/calendar/business/OccurrenceEvent.java

Violation Line
Document empty constructor 4749
It is a good practice to call super() in a constructor 4749
It is a good practice to call super() in a constructor 5671

fr/paris/lutece/plugins/calendar/business/SimpleAgenda.java

Violation Line
Private field '_mapDays' could be made final; it is only initialized in the declaration or constructor. 56
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 56
Private field '_list' could be made final; it is only initialized in the declaration or constructor. 57
Document empty constructor 6264
Avoid unnecessary constructors - the compiler will generate these for you 6264

fr/paris/lutece/plugins/calendar/business/SimpleEvent.java

Violation Line
This class has a bunch of public methods and attributes 34705
Too many fields 47705
Returning '_listTags' may expose an internal array. 533
The user-supplied array 'listTags' is stored directly. 541
Consider using varargs for methods or constructors which take an array the last parameter. 541
Returning '_listExcludedDays' may expose an internal array. 693
The user-supplied array 'listExcludedDays' is stored directly. 701
Consider using varargs for methods or constructors which take an array the last parameter. 701

fr/paris/lutece/plugins/calendar/business/category/Category.java

Violation Line
The class 'Category' has a Modified Cyclomatic Complexity of 2 (Highest = 11). 45206
The class 'Category' has a Standard Cyclomatic Complexity of 2 (Highest = 11). 45206
The class 'Category' has a Cyclomatic Complexity of 2 (Highest = 11). 45206
Returning '_byteIconContent' may expose an internal array. 62
The user-supplied array 'byteIconContent' is stored directly. 68
The method 'equals' has a Cyclomatic Complexity of 11. 156205
The method equals() has an NPath complexity of 256 156205
The method 'equals' has a Standard Cyclomatic Complexity of 11. 156205
The method 'equals' has a Modified Cyclomatic Complexity of 11. 156205
Ensure you override both equals() and hashCode() 156

fr/paris/lutece/plugins/calendar/business/category/CategoryDAO.java

Violation Line
Avoid variables with short names like i 317

fr/paris/lutece/plugins/calendar/business/notification/CalendarNotificationDAO.java

Violation Line
Use block level rather than method level synchronization 6376

fr/paris/lutece/plugins/calendar/business/parameter/CalendarParameterDAO.java

Violation Line
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 104

fr/paris/lutece/plugins/calendar/business/portlet/CalendarPortlet.java

Violation Line
The class 'CalendarPortlet' has a Cyclomatic Complexity of 3 (Highest = 14). 66250
The class 'CalendarPortlet' has a Modified Cyclomatic Complexity of 3 (Highest = 11). 66250
The class 'CalendarPortlet' has a Standard Cyclomatic Complexity of 3 (Highest = 11). 66250
Overriding method merely calls super 8891
The method 'getXml' has a Standard Cyclomatic Complexity of 11. 110221
The method 'getXml' has a Cyclomatic Complexity of 14. 110221
The method 'getXml' has a Modified Cyclomatic Complexity of 11. 110221
Avoid really long methods. 110221
These nested if statements could be combined 144147
When instantiating a SimpleDateFormat object, specify a Locale 186
This statement may have some unnecessary parentheses 187
Prefer StringBuffer over += for concatenating strings 202

fr/paris/lutece/plugins/calendar/business/portlet/CalendarPortletDAO.java

Violation Line
Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block 235
Avoid catching NullPointerException; consider removing the cause of the NPE. 235
Avoid empty catch blocks 235237
Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block 263
Avoid catching NullPointerException; consider removing the cause of the NPE. 263
Avoid empty catch blocks 263265

fr/paris/lutece/plugins/calendar/business/portlet/CalendarPortletHome.java

Violation Line
Possible unsafe assignment to a non-final static field in a constructor. 52
It is a good practice to call super() in a constructor 6066
Singleton is not thread safe 8891

fr/paris/lutece/plugins/calendar/business/portlet/MiniCalendarPortlet.java

Violation Line
The class 'MiniCalendarPortlet' has a Cyclomatic Complexity of 5 (Highest = 29). 69323
The class 'MiniCalendarPortlet' has a Modified Cyclomatic Complexity of 5 (Highest = 26). 69323
The class 'MiniCalendarPortlet' has a Standard Cyclomatic Complexity of 5 (Highest = 26). 69323
Overriding method merely calls super 102105
Avoid really long methods. 124294
The method 'getXml' has a Modified Cyclomatic Complexity of 26. 124294
The method 'getXml' has a Standard Cyclomatic Complexity of 26. 124294
The method 'getXml' has a Cyclomatic Complexity of 29. 124294
The method getXml() has an NPath complexity of 947772000 124294
Avoid variables with short names like i 170
When instantiating a SimpleDateFormat object, specify a Locale 221
Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block 236
Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block 245

fr/paris/lutece/plugins/calendar/business/portlet/MiniCalendarPortletHome.java

Violation Line
Possible unsafe assignment to a non-final static field in a constructor. 49
It is a good practice to call super() in a constructor 5763
Singleton is not thread safe 8588

fr/paris/lutece/plugins/calendar/business/rss/CalendarResourceRss.java

Violation Line
Document empty method 6667
Document empty method 7374
Document empty method 8081

fr/paris/lutece/plugins/calendar/business/stylesheet/CalendarStyleSheetDAO.java

Violation Line
Use explicit scoping instead of the default package private level 7391
Use block level rather than method level synchronization 99114

fr/paris/lutece/plugins/calendar/modules/ical/ICalAgenda.java

Violation Line
The class 'ICalAgenda' has a Modified Cyclomatic Complexity of 3 (Highest = 17). 61298
The class 'ICalAgenda' has a Cyclomatic Complexity of 3 (Highest = 17). 61298
The class 'ICalAgenda' has a Standard Cyclomatic Complexity of 3 (Highest = 17). 61298
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 66
Private field '_mapDays' could be made final; it is only initialized in the declaration or constructor. 66
Private field '_list' could be made final; it is only initialized in the declaration or constructor. 67
Document empty constructor 7275
Avoid unnecessary constructors - the compiler will generate these for you 7275
The method setEvents() has an NPath complexity of 245 169239
The method 'setEvents' has a Modified Cyclomatic Complexity of 17. 169239
The method 'setEvents' has a Standard Cyclomatic Complexity of 17. 169239
The method 'setEvents' has a Cyclomatic Complexity of 17. 169239

fr/paris/lutece/plugins/calendar/modules/ical/ICalAgendaLoader.java

Violation Line
Avoid variables with short names like a 71

fr/paris/lutece/plugins/calendar/modules/ical/ICalEvent.java

Violation Line
This class has a bunch of public methods and attributes 34617
Too many fields 47617
Use explicit scoping instead of the default package private level 330343
Use explicit scoping instead of the default package private level 350359
Use explicit scoping instead of the default package private level 366369
Use explicit scoping instead of the default package private level 376379
Use explicit scoping instead of the default package private level 396399
Use explicit scoping instead of the default package private level 406409

fr/paris/lutece/plugins/calendar/modules/text/TextAgendaLoader.java

Violation Line
Document empty constructor 6264
Avoid unnecessary constructors - the compiler will generate these for you 6264

fr/paris/lutece/plugins/calendar/service/AgendaLoaderDatabase.java

Violation Line
Private field '_strPluginName' could be made final; it is only initialized in the declaration or constructor. 56
Avoid unnecessary constructors - the compiler will generate these for you 6164
Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block 107
Assigning an Object to null is a code smell. Consider refactoring. 109
Avoid variables with short names like a 121

fr/paris/lutece/plugins/calendar/service/AgendaLoaderProperties.java

Violation Line
Private field '_strFilesPath' could be made final; it is only initialized in the declaration or constructor. 69
String.indexOf(char) is faster than String.indexOf(String). 99
Avoid variables with short names like is 145
Avoid variables with short names like a 158

fr/paris/lutece/plugins/calendar/service/AgendaResource.java

Violation Line
Singleton is not thread safe 7680
Singleton is not thread safe 8286

fr/paris/lutece/plugins/calendar/service/AgendaService.java

Violation Line
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 115

fr/paris/lutece/plugins/calendar/service/AgendaSubscriberService.java

Violation Line
A high number of imports can indicate a high degree of coupling within an object. 34524
Possible unsafe assignment to a non-final static field in a constructor. 135
Singleton is not thread safe 154157
Use opposite operator instead of the logic complement operator. 174
Prefer StringBuffer over += for concatenating strings 174
Rather than using a lot of String arguments, consider using a container object for those values. 255256
Unnecessary use of fully qualified name 'java.util.UUID.randomUUID' due to existing import 'java.util.UUID' 382
Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block 435
Prefer StringBuffer over += for concatenating strings 453
Use opposite operator instead of the logic complement operator. 453

fr/paris/lutece/plugins/calendar/service/CalendarResourceIdService.java

Violation Line
Avoid variables with short names like rt 60
Avoid variables with short names like p 65

fr/paris/lutece/plugins/calendar/service/CalendarService.java

Violation Line
Private field '_cacheCalendar' could be made final; it is only initialized in the declaration or constructor. 73
These nested if statements could be combined 187190
Deeply nested if..then statements are hard to read 187190
These nested if statements could be combined 226229
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 363
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 375

fr/paris/lutece/plugins/calendar/service/CategoryService.java

Violation Line
Singleton is not thread safe 7982
Avoid variables with short names like i 190
A getX() method which returns a boolean should be named isX() 306309

fr/paris/lutece/plugins/calendar/service/EventListService.java

Violation Line
Private field '_cacheEventList' could be made final; it is only initialized in the declaration or constructor. 68
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 324
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 338

fr/paris/lutece/plugins/calendar/service/Utils.java

Violation Line
Possible God class (WMC=136, ATFD=175, TCC=0.009523809523809525) 341140
Avoid really long classes. 721140
The class 'Utils' has a Cyclomatic Complexity of 3 (Highest = 17). 721140
The class 'Utils' has a Standard Cyclomatic Complexity of 3 (Highest = 13). 721140
The class 'Utils' has a Modified Cyclomatic Complexity of 3 (Highest = 11). 721140
Do not add empty strings 96
Prefer StringBuffer over += for concatenating strings 99
Do not add empty strings 99
Do not add empty strings 100
Prefer StringBuffer over += for concatenating strings 100
When instantiating a SimpleDateFormat object, specify a Locale 134
When instantiating a SimpleDateFormat object, specify a Locale 156
When instantiating a SimpleDateFormat object, specify a Locale 178
Avoid using Literals in Conditional Statements 226
Avoid using Literals in Conditional Statements 260
The method isValid() has an NPath complexity of 216 397440
The method 'isValid' has a Cyclomatic Complexity of 10. 397440
Avoid using Literals in Conditional Statements 404
Avoid unnecessary if..then..else statements when returning booleans 434437
Avoid unnecessary if..then..else statements when returning booleans 451454
Position literals first in String comparisons 470
Avoid using Literals in Conditional Statements 474
Avoid variables with short names like n 501
Avoid variables with short names like n 517
Consider using varargs for methods or constructors which take an array the last parameter. 534
The method 'getDateForward' has a Cyclomatic Complexity of 17. 534609
The method 'getDateForward' has a Modified Cyclomatic Complexity of 11. 534609
The method 'getDateForward' has a Standard Cyclomatic Complexity of 13. 534609
Avoid declaring a variable if it is unreferenced before a possible exit point. 536
Avoid declaring a variable if it is unreferenced before a possible exit point. 537
Consider using varargs for methods or constructors which take an array the last parameter. 663
Avoid variables with short names like a 708
These nested if statements could be combined 725728
The method 'getAgendaWithOccurrences' has a Cyclomatic Complexity of 10. 751793
Avoid variables with short names like a 761
These nested if statements could be combined 773776
The method 'getAgendaWithOccurrencesOrderedbyId' has a Cyclomatic Complexity of 10. 801843
Avoid variables with short names like a 811
These nested if statements could be combined 823826
These nested if statements could be combined 869872
Avoid variables with short names like a 951
Avoid variables with short names like a 972
Avoid variables with short names like a 993
Avoid variables with short names like i 1028
These nested if statements could be combined 10671070
Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 1078
When instantiating a SimpleDateFormat object, specify a Locale 1099
Consider using varargs for methods or constructors which take an array the last parameter. 1120

fr/paris/lutece/plugins/calendar/service/XMLUtils.java

Violation Line
A high number of imports can indicate a high degree of coupling within an object. 34605
The class 'XMLUtils' has a Standard Cyclomatic Complexity of 6 (Highest = 17). 89605
The class 'XMLUtils' has a Cyclomatic Complexity of 7 (Highest = 17). 89605
The class 'XMLUtils' has a Modified Cyclomatic Complexity of 6 (Highest = 17). 89605
Avoid really long methods. 188291
The method 'getXml' has a Modified Cyclomatic Complexity of 17. 188291
The method 'getXml' has a Standard Cyclomatic Complexity of 17. 188291
The method getXml() has an NPath complexity of 2000003 188291
The method 'getXml' has a Cyclomatic Complexity of 17. 188291
Avoid variables with short names like i 198
Prefer StringBuffer over += for concatenating strings 216
Prefer StringBuffer over += for concatenating strings 221
Prefer StringBuffer over += for concatenating strings 226
Prefer StringBuffer over += for concatenating strings 261
The method 'transformXMLToXSL' has a Modified Cyclomatic Complexity of 10. 304371
The method 'transformXMLToXSL' has a Cyclomatic Complexity of 10. 304371
The method 'transformXMLToXSL' has a Standard Cyclomatic Complexity of 10. 304371
A method/constructor shouldnt explicitly throw java.lang.Exception 305
A method/constructor shouldnt explicitly throw java.lang.Exception 305
Prefer StringBuffer over += for concatenating strings 347
The String literal "Error transforming document XSLT : " appears 4 times in this file; the first occurrence is on line 350 350
New exception is thrown in catch block, original stack trace may be lost 350
Prefer StringBuffer over += for concatenating strings 362
New exception is thrown in catch block, original stack trace may be lost 365
Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block 367
The method getXMLPortletCalendar() has an NPath complexity of 484 380577
Avoid really long methods. 380577
The method getXMLPortletCalendar() has an NCSS line count of 101 380577
The method 'getXMLPortletCalendar' has a Cyclomatic Complexity of 12. 380577
Avoid using Literals in Conditional Statements 393
Avoid instantiating String objects; this is usually unnecessary. 527
Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 540

fr/paris/lutece/plugins/calendar/service/cache/CalendarCacheService.java

Violation Line
It is a good practice to call super() in a constructor 5456
Singleton is not thread safe 6467

fr/paris/lutece/plugins/calendar/service/cache/EventListCacheService.java

Violation Line
It is a good practice to call super() in a constructor 5456
Singleton is not thread safe 6467

fr/paris/lutece/plugins/calendar/service/search/CalendarIndexer.java

Violation Line
A high number of imports can indicate a high degree of coupling within an object. 34398
Unnecessary use of fully qualified name 'org.apache.lucene.document.Document' due to existing import 'org.apache.lucene.document.Document' 144
Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block 149
Avoid declaring a variable if it is unreferenced before a possible exit point. 172
Avoid declaring a variable if it is unreferenced before a possible exit point. 173
Unnecessary use of fully qualified name 'org.apache.lucene.document.Document' due to existing import 'org.apache.lucene.document.Document' 197
Unnecessary use of fully qualified name 'org.apache.lucene.document.Document' due to existing import 'org.apache.lucene.document.Document' 216
Unnecessary use of fully qualified name 'org.apache.lucene.document.Document' due to existing import 'org.apache.lucene.document.Document' 220
Unnecessary use of fully qualified name 'org.apache.lucene.document.Document' due to existing import 'org.apache.lucene.document.Document' 220
Avoid variables with short names like ft 222
Avoid variables with short names like i 237
Prefer StringBuffer over += for concatenating strings 241
New exception is thrown in catch block, original stack trace may be lost 276
New exception is thrown in catch block, original stack trace may be lost 280
Avoid concatenating nonliterals in a StringBuffer/StringBuilder constructor or append(). 285
Avoid variables with short names like sb 285
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 323
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 324
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 325
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 326
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 327
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 328

fr/paris/lutece/plugins/calendar/service/search/CalendarLuceneSearchEngine.java

Violation Line
The class 'CalendarLuceneSearchEngine' has a Modified Cyclomatic Complexity of 10 (Highest = 15). 71317
The class 'CalendarLuceneSearchEngine' has a Standard Cyclomatic Complexity of 10 (Highest = 15). 71317
The class 'CalendarLuceneSearchEngine' has a Cyclomatic Complexity of 12 (Highest = 20). 71317
Avoid variables with short names like OR 76
The method 'getSearchResults' has a Modified Cyclomatic Complexity of 15. 88281
Avoid really long methods. 88281
The method getSearchResults() has an NPath complexity of 8643 88281
The method 'getSearchResults' has a Standard Cyclomatic Complexity of 15. 88281
The method 'getSearchResults' has a Cyclomatic Complexity of 20. 88281
The method getSearchResults() has an NCSS line count of 115 88281
Avoid declaring a variable if it is unreferenced before a possible exit point. 91
Avoid variables with short names like ir 104
Prefer StringBuffer over += for concatenating strings 122
Prefer StringBuffer over += for concatenating strings 127
Prefer StringBuffer over += for concatenating strings 131
Prefer StringBuffer over += for concatenating strings 150
Prefer StringBuffer over += for concatenating strings 155
Prefer StringBuffer over += for concatenating strings 159
Avoid variables with short names like si 244
Avoid variables with short names like si 271
Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block 275

fr/paris/lutece/plugins/calendar/service/search/CalendarSearchService.java

Violation Line
Singleton is not thread safe 7578
Avoid catching NullPointerException; consider removing the cause of the NPE. 129
Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block 129

fr/paris/lutece/plugins/calendar/web/CalendarAdminDashboardComponent.java

Violation Line
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 74

fr/paris/lutece/plugins/calendar/web/CalendarApp.java

Violation Line
Possible God class (WMC=182, ATFD=565, TCC=0.016042780748663103) 341691
A high number of imports can indicate a high degree of coupling within an object. 341691
Avoid really long classes. 1011691
The class 'CalendarApp' has a Cyclomatic Complexity of 6 (Highest = 35). 1011691
The class 'CalendarApp' has a Modified Cyclomatic Complexity of 4 (Highest = 25). 1011691
The class 'CalendarApp' has a Standard Cyclomatic Complexity of 4 (Highest = 28). 1011691
Private field '_nDefaultItemsPerPage' could be made final; it is only initialized in the declaration or constructor. 151
Private field '_agendaSubscriberService' could be made final; it is only initialized in the declaration or constructor. 155
Private field '_categoryService' could be made final; it is only initialized in the declaration or constructor. 156
Private field '_eventListService' could be made final; it is only initialized in the declaration or constructor. 157
Private field '_calendarService' could be made final; it is only initialized in the declaration or constructor. 159
The method 'getPage' has a Cyclomatic Complexity of 22. 174271
The method 'getPage' has a Modified Cyclomatic Complexity of 22. 174271
The method 'getPage' has a Standard Cyclomatic Complexity of 22. 174271
Avoid unused method parameters such as 'plugin'. 279
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 298
Avoid unused method parameters such as 'plugin'. 340
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 391
Avoid unused method parameters such as 'plugin'. 417
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 425
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 543
Avoid unused method parameters such as 'plugin'. 572
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 581
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 607
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 631
The method 'getSearchResultPage' has a Modified Cyclomatic Complexity of 25. 657883
Avoid really long methods. 657883
The method 'getSearchResultPage' has a Standard Cyclomatic Complexity of 28. 657883
The method getSearchResultPage() has an NCSS line count of 134 657883
The method 'getSearchResultPage' has a Cyclomatic Complexity of 35. 657883
Avoid using Literals in Conditional Statements 722
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 772
The method 'getShowResultPage' has a Cyclomatic Complexity of 15. 891997
Avoid really long methods. 891997
Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block 930
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 953
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 1009
Avoid unused method parameters such as 'request'. 1133
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 1139
The method 'doCreateEvent' has a Cyclomatic Complexity of 11. 11741259
The method 'doModifyEvent' has a Cyclomatic Complexity of 13. 12701342
Avoid unused method parameters such as 'plugin'. 1431
The method 'doSendToFriend' has a Cyclomatic Complexity of 10. 15021559
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 1543
Avoid variables with short names like i 1596
Avoid variables with short names like i 1619

fr/paris/lutece/plugins/calendar/web/CalendarCategoryJspBean.java

Violation Line
Avoid unnecessary constructors - the compiler will generate these for you 119121
It is a good practice to call super() in a constructor 119121
Document empty constructor 119121
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 167
Avoid declaring a variable if it is unreferenced before a possible exit point. 195
Avoid declaring a variable if it is unreferenced before a possible exit point. 197
Avoid declaring a variable if it is unreferenced before a possible exit point. 198
Avoid declaring a variable if it is unreferenced before a possible exit point. 201
Avoid declaring a variable if it is unreferenced before a possible exit point. 247
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 255
Avoid declaring a variable if it is unreferenced before a possible exit point. 279
Avoid declaring a variable if it is unreferenced before a possible exit point. 280
Avoid declaring a variable if it is unreferenced before a possible exit point. 281
Avoid declaring a variable if it is unreferenced before a possible exit point. 282
Avoid declaring a variable if it is unreferenced before a possible exit point. 283

fr/paris/lutece/plugins/calendar/web/CalendarDashboardComponent.java

Violation Line
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 93
Avoid variables with short names like t 105
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 130

fr/paris/lutece/plugins/calendar/web/CalendarDownloadFile.java

Violation Line
The class 'CalendarDownloadFile' has a Modified Cyclomatic Complexity of 12 (Highest = 18). 68249
The class 'CalendarDownloadFile' has a Cyclomatic Complexity of 13 (Highest = 19). 68249
The class 'CalendarDownloadFile' has a Standard Cyclomatic Complexity of 12 (Highest = 18). 68249
The method 'downloadCalendarToFile' has a Modified Cyclomatic Complexity of 18. 85204
Avoid really long methods. 85204
The method downloadCalendarToFile() has an NPath complexity of 9000 85204
The method 'downloadCalendarToFile' has a Cyclomatic Complexity of 19. 85204
The method 'downloadCalendarToFile' has a Standard Cyclomatic Complexity of 18. 85204
These nested if statements could be combined 108120
Avoid variables with short names like i 111
Deeply nested if..then statements are hard to read 115118
These nested if statements could be combined 126139
Avoid variables with short names like i 130
Deeply nested if..then statements are hard to read 134137
Avoid variables with short names like os 191
New exception is thrown in catch block, original stack trace may be lost 198
Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block 200
New exception is thrown in catch block, original stack trace may be lost 202
New exception is thrown in catch block, original stack trace may be lost 245

fr/paris/lutece/plugins/calendar/web/CalendarJspBean.java

Violation Line
Possible God class (WMC=231, ATFD=960, TCC=0.05714285714285714) 342248
A high number of imports can indicate a high degree of coupling within an object. 342248
The class 'CalendarJspBean' has a Standard Cyclomatic Complexity of 5 (Highest = 28). 1132248
The class 'CalendarJspBean' has a Modified Cyclomatic Complexity of 5 (Highest = 28). 1132248
The class 'CalendarJspBean' has a Cyclomatic Complexity of 7 (Highest = 47). 1132248
Avoid really long classes. 1132248
Avoid excessively long variable names like ATTRIBUTE_MODULE_DOCUMENT_TO_CALENDAR_MIME_TYPE_FILE 131
Private field '_nDefaultItemsPerPage' could be made final; it is only initialized in the declaration or constructor. 199
Private field '_categoryService' could be made final; it is only initialized in the declaration or constructor. 204
Private field '_agendaSubscriberService' could be made final; it is only initialized in the declaration or constructor. 205
Private field '_eventListService' could be made final; it is only initialized in the declaration or constructor. 206
Private field '_calendarService' could be made final; it is only initialized in the declaration or constructor. 208
It is a good practice to call super() in a constructor 214217
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 232
Do not add empty strings 244
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 266
Avoid declaring a variable if it is unreferenced before a possible exit point. 284
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 284
Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block 293
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 384
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 566
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 609
The method 'getOccurrenceList' has a Cyclomatic Complexity of 10. 677750
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 689
Do not add empty strings 737
The method doCreateEvent() has an NPath complexity of 42467332 7581018
The method 'doCreateEvent' has a Cyclomatic Complexity of 42. 7581018
Avoid really long methods. 7581018
The method doCreateEvent() has an NCSS line count of 129 7581018
The method 'doCreateEvent' has a Standard Cyclomatic Complexity of 27. 7581018
The method 'doCreateEvent' has a Modified Cyclomatic Complexity of 27. 7581018
Avoid declaring a variable if it is unreferenced before a possible exit point. 767
Avoid declaring a variable if it is unreferenced before a possible exit point. 768
Avoid declaring a variable if it is unreferenced before a possible exit point. 769
Avoid declaring a variable if it is unreferenced before a possible exit point. 770
Avoid declaring a variable if it is unreferenced before a possible exit point. 771
Avoid declaring a variable if it is unreferenced before a possible exit point. 772
Avoid declaring a variable if it is unreferenced before a possible exit point. 775
Avoid declaring a variable if it is unreferenced before a possible exit point. 779
Avoid declaring a variable if it is unreferenced before a possible exit point. 780
Avoid declaring a variable if it is unreferenced before a possible exit point. 781
Avoid declaring a variable if it is unreferenced before a possible exit point. 782
Avoid declaring a variable if it is unreferenced before a possible exit point. 783
Avoid declaring a variable if it is unreferenced before a possible exit point. 784
Avoid declaring a variable if it is unreferenced before a possible exit point. 785
Avoid declaring a variable if it is unreferenced before a possible exit point. 786
Avoid declaring a variable if it is unreferenced before a possible exit point. 787
Avoid declaring a variable if it is unreferenced before a possible exit point. 788
Avoid declaring a variable if it is unreferenced before a possible exit point. 791
Avoid declaring a variable if it is unreferenced before a possible exit point. 794
Avoid declaring a variable if it is unreferenced before a possible exit point. 814
Position literals first in String comparisons 861
Position literals first in String comparisons 876
Avoid using Literals in Conditional Statements 953
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 1041
Prefer StringBuffer over += for concatenating strings 1052
The method 'doModifyEvent' has a Standard Cyclomatic Complexity of 28. 11011346
Avoid really long methods. 11011346
The method 'doModifyEvent' has a Modified Cyclomatic Complexity of 28. 11011346
The method doModifyEvent() has an NCSS line count of 117 11011346
The method doModifyEvent() has an NPath complexity of 29245440 11011346
The method 'doModifyEvent' has a Cyclomatic Complexity of 47. 11011346
Avoid declaring a variable if it is unreferenced before a possible exit point. 11041105
Avoid declaring a variable if it is unreferenced before a possible exit point. 1108
Avoid declaring a variable if it is unreferenced before a possible exit point. 1111
Avoid declaring a variable if it is unreferenced before a possible exit point. 1114
Position literals first in String comparisons 1117
Position literals first in String comparisons 1117
Position literals first in String comparisons 1117
Avoid declaring a variable if it is unreferenced before a possible exit point. 1147
Avoid declaring a variable if it is unreferenced before a possible exit point. 1224
Avoid declaring a variable if it is unreferenced before a possible exit point. 1225
Avoid declaring a variable if it is unreferenced before a possible exit point. 12271228
Avoid declaring a variable if it is unreferenced before a possible exit point. 1229
Avoid declaring a variable if it is unreferenced before a possible exit point. 1230
Avoid declaring a variable if it is unreferenced before a possible exit point. 1231
Avoid declaring a variable if it is unreferenced before a possible exit point. 1232
Avoid declaring a variable if it is unreferenced before a possible exit point. 1233
Avoid declaring a variable if it is unreferenced before a possible exit point. 1234
Avoid declaring a variable if it is unreferenced before a possible exit point. 1235
Position literals first in String comparisons 1240
Position literals first in String comparisons 1279
Avoid using Literals in Conditional Statements 1306
Assigning an Object to null is a code smell. Consider refactoring. 1342
The method 'doModifyOccurrence' has a Cyclomatic Complexity of 10. 13541429
Avoid declaring a variable if it is unreferenced before a possible exit point. 1357
Avoid declaring a variable if it is unreferenced before a possible exit point. 1359
Avoid declaring a variable if it is unreferenced before a possible exit point. 1360
Avoid declaring a variable if it is unreferenced before a possible exit point. 1361
Position literals first in String comparisons 1364
Avoid using Literals in Conditional Statements 1400
Avoid declaring a variable if it is unreferenced before a possible exit point. 1438
Avoid declaring a variable if it is unreferenced before a possible exit point. 1440
Prefer StringBuffer over += for concatenating strings 1444
Avoid declaring a variable if it is unreferenced before a possible exit point. 1445
Avoid declaring a variable if it is unreferenced before a possible exit point. 1447
Position literals first in String comparisons 1453
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 1508
Avoid variables with short names like st 1626
Avoid variables with short names like st 1649
Avoid variables with short names like i 1651
Avoid unused method parameters such as 'request'. 1666
The method getConfirmModifyEvent() has an NPath complexity of 33554432 17171880
Avoid really long methods. 17171880
The method 'getConfirmModifyEvent' has a Cyclomatic Complexity of 28. 17171880
The method 'getConfirmModifyEvent' has a Standard Cyclomatic Complexity of 26. 17171880
The method 'getConfirmModifyEvent' has a Modified Cyclomatic Complexity of 26. 17171880
Avoid declaring a variable if it is unreferenced before a possible exit point. 1721
Prefer StringBuffer over += for concatenating strings 1906
The method 'doRemoveOccurrence' has a Cyclomatic Complexity of 10. 19281993
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 2007
Do not add empty strings 2034
Prefer StringBuffer over += for concatenating strings 2163

fr/paris/lutece/plugins/calendar/web/CalendarServiceJspBean.java

Violation Line
Private field '_plugin' could be made final; it is only initialized in the declaration or constructor. 102
Avoid declaring a variable if it is unreferenced before a possible exit point. 233
Avoid declaring a variable if it is unreferenced before a possible exit point. 234
Avoid declaring a variable if it is unreferenced before a possible exit point. 235
Avoid declaring a variable if it is unreferenced before a possible exit point. 236
Avoid declaring a variable if it is unreferenced before a possible exit point. 237

fr/paris/lutece/plugins/calendar/web/CalendarStyleSheetJspBean.java

Violation Line
A high number of imports can indicate a high degree of coupling within an object. 34628
Perhaps '_nDefaultItemsPerPage' could be replaced by a local variable. 134
Prefer StringBuffer over += for concatenating strings 180
Prefer StringBuffer over += for concatenating strings 185
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 191
Do not add empty strings 193
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 217
Position literals first in String comparisons 255
This call to String.startsWith can be rewritten using String.charAt(0) 269
Avoid declaring a variable if it is unreferenced before a possible exit point. 299
Avoid declaring a variable if it is unreferenced before a possible exit point. 305
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 356
This statement may have some unnecessary parentheses 394
This call to String.startsWith can be rewritten using String.charAt(0) 451
Avoid variables with short names like is 554
Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block 557

fr/paris/lutece/plugins/calendar/web/DayCalendarView.java

Violation Line
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 76
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 90

fr/paris/lutece/plugins/calendar/web/HtmlUtils.java

Violation Line
The method fillEventTemplate() has an NPath complexity of 2000 104154
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 128
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 137

fr/paris/lutece/plugins/calendar/web/MonthCalendarView.java

Violation Line
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 82
Avoid using Literals in Conditional Statements 90
Avoid unused method parameters such as 'request'. 151
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 153
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 168
Prefer StringBuffer over += for concatenating strings 214
Prefer StringBuffer over += for concatenating strings 218
Prefer StringBuffer over += for concatenating strings 222

fr/paris/lutece/plugins/calendar/web/MonthEventList.java

Violation Line
Avoid unused method parameters such as 'request'. 105

fr/paris/lutece/plugins/calendar/web/SmallMonthCalendar.java

Violation Line
The class 'SmallMonthCalendar' has a Cyclomatic Complexity of 7 (Highest = 10). 66293
The method 'getSmallMonthCalendar' has a Cyclomatic Complexity of 10. 90175
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 93
Avoid using Literals in Conditional Statements 111
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 123
The method 'getDay' has a Cyclomatic Complexity of 10. 186254
Unnecessary use of fully qualified name 'fr.paris.lutece.plugins.calendar.business.MultiAgenda' due to existing import 'fr.paris.lutece.plugins.calendar.business.MultiAgenda' 194
Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 214
Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 227
Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 234
Prefer StringBuffer over += for concatenating strings 271
Prefer StringBuffer over += for concatenating strings 275
Prefer StringBuffer over += for concatenating strings 279
Prefer StringBuffer over += for concatenating strings 283
Prefer StringBuffer over += for concatenating strings 288

fr/paris/lutece/plugins/calendar/web/WeekCalendarView.java

Violation Line
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 90
Avoid unused method parameters such as 'request'. 106
Prefer StringBuffer over += for concatenating strings 159
Prefer StringBuffer over += for concatenating strings 163
Prefer StringBuffer over += for concatenating strings 167

fr/paris/lutece/plugins/calendar/web/WeekEventList.java

Violation Line
Avoid unused method parameters such as 'request'. 122

fr/paris/lutece/plugins/calendar/web/portlet/CalendarPortletJspBean.java

Violation Line
Avoid declaring a variable if it is unreferenced before a possible exit point. 130
Avoid declaring a variable if it is unreferenced before a possible exit point. 134
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 177
Prefer StringBuffer over += for concatenating strings 210
Avoid declaring a variable if it is unreferenced before a possible exit point. 265
Avoid declaring a variable if it is unreferenced before a possible exit point. 291
Avoid using Literals in Conditional Statements 294
Avoid variables with short names like st 329
Avoid variables with short names like st 378

fr/paris/lutece/plugins/calendar/web/portlet/MiniCalendarPortletJspBean.java

Violation Line
Avoid declaring a variable if it is unreferenced before a possible exit point. 105
Avoid declaring a variable if it is unreferenced before a possible exit point. 109
Avoid declaring a variable if it is unreferenced before a possible exit point. 179
Avoid variables with short names like st 221