 
    
  
                
                    
    
        The following document contains the results of PMD 5.5.1.
| Violation | Line | 
|---|---|
| Avoid unused imports such as 'javax.validation.constraints' | 36 | 
| Avoid unused imports such as 'org.hibernate.validator.constraints' | 37 | 
| Violation | Line | 
|---|---|
| A getX() method which returns a boolean should be named isX() | 158–161 | 
| Violation | Line | 
|---|---|
| Avoid unused imports such as 'fr.paris.lutece.util.sql.DAOUtil' | 45 | 
| Avoid unused imports such as 'fr.paris.lutece.util.sql.DAOUtil' | 45 | 
| Violation | Line | 
|---|---|
| It is a good practice to call super() in a constructor | 52–55 | 
| Violation | Line | 
|---|---|
| Avoid variables with short names like p | 63 | 
| Avoid variables with short names like p | 92 | 
| Violation | Line | 
|---|---|
| Possible unsafe assignment to a non-final static field in a constructor. | 51 | 
| It is a good practice to call super() in a constructor | 56–62 | 
| Singleton is not thread safe | 84–87 | 
| Violation | Line | 
|---|---|
| The Logger variable declaration does not contain the static and final modifiers | 64 | 
| A switch with less than three branches is inefficient, use a if statement instead. | 82–88 | 
| Avoid empty catch blocks | 112–114 | 
| A switch with less than three branches is inefficient, use a if statement instead. | 160–166 | 
| Avoid empty catch blocks | 190–192 | 
| Violation | Line | 
|---|---|
| Avoid variables with short names like ID | 48 | 
| Violation | Line | 
|---|---|
| The Logger variable declaration does not contain the static and final modifiers | 66 | 
| This final field could be made static | 67 | 
| A switch with less than three branches is inefficient, use a if statement instead. | 86–92 | 
| A switch with less than three branches is inefficient, use a if statement instead. | 113–119 | 
| Avoid declaring a variable if it is unreferenced before a possible exit point. | 133 | 
| Avoid empty catch blocks | 145–147 | 
| Avoid empty catch blocks | 203–205 | 
| Violation | Line | 
|---|---|
| The Logger variable declaration does not contain the static and final modifiers | 64 | 
| A switch with less than three branches is inefficient, use a if statement instead. | 82–88 | 
| Avoid empty catch blocks | 112–114 | 
| A switch with less than three branches is inefficient, use a if statement instead. | 158–164 | 
| Avoid empty catch blocks | 188–190 | 
| Violation | Line | 
|---|---|
| It is a good practice to call super() in a constructor | 47–50 | 
| Violation | Line | 
|---|---|
| Avoid unused imports such as 'org.apache.tika.metadata.Property.ValueType' | 40 | 
| Avoid unused imports such as 'org.apache.tika.metadata.Property.ValueType' | 40 | 
| Avoid unused imports such as 'org.codehaus.jackson.type.TypeReference' | 45 | 
| Avoid unused imports such as 'org.codehaus.jackson.type.TypeReference' | 45 | 
| Avoid unused imports such as 'fr.paris.lutece.plugins.parisconnect.business.Newsletter' | 47 | 
| Avoid unused imports such as 'fr.paris.lutece.plugins.parisconnect.business.Newsletter' | 47 | 
| All methods are static. Consider using a utility class instead. Alternatively, you could add a private constructor or make the class abstract to silence this warning. | 57–136 | 
| Violation | Line | 
|---|---|
| It is a good practice to call super() in a constructor | 47–50 | 
| Violation | Line | 
|---|---|
| The Logger variable declaration does not contain the static and final modifiers | 73 | 
| debug logging that involves string concatenation should be guarded with isDebugEnabled() checks | 227 | 
| debug logging that involves string concatenation should be guarded with isDebugEnabled() checks | 287 | 
| New exception is thrown in catch block, original stack trace may be lost | 328 | 
| Violation | Line | 
|---|---|
| Possible God class (WMC=59, ATFD=61, TCC=0.16205533596837945) | 34–820 | 
| The class 'ParisConnectAPIService' has a Cyclomatic Complexity of 3 (Highest = 10). | 57–820 | 
| The class 'ParisConnectAPIService' has a Standard Cyclomatic Complexity of 3 (Highest = 10). | 57–820 | 
| The class 'ParisConnectAPIService' has a Modified Cyclomatic Complexity of 3 (Highest = 10). | 57–820 | 
| Avoid unused private fields such as 'METHOD_CHECK_CONNECTION_COOKIE'. | 108 | 
| Avoid unused private fields such as 'PARAMETER_CONNECTION_COOKIE'. | 111 | 
| Avoid unused private fields such as 'KEY_SUCCESS'. | 113 | 
| The Logger variable declaration does not contain the static and final modifiers | 132 | 
| Unnecessary use of fully qualified name 'org.apache.log4j.Logger.getLogger' due to existing import 'org.apache.log4j.Logger' | 132 | 
| Use explicit scoping instead of the default package private level | 146–162 | 
| If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation | 148 | 
| Use explicit scoping instead of the default package private level | 169–186 | 
| If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation | 171 | 
| Use explicit scoping instead of the default package private level | 195–211 | 
| If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation | 197 | 
| Use explicit scoping instead of the default package private level | 218–235 | 
| If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation | 220 | 
| Use explicit scoping instead of the default package private level | 244–262 | 
| If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation | 246 | 
| Use explicit scoping instead of the default package private level | 270–288 | 
| If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation | 272 | 
| Use explicit scoping instead of the default package private level | 297–315 | 
| If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation | 299 | 
| Use explicit scoping instead of the default package private level | 323–341 | 
| If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation | 325 | 
| Use explicit scoping instead of the default package private level | 348–373 | 
| If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation | 350 | 
| Avoid variables with short names like jo | 360 | 
| The String literal "Account Shadow API call : mail=" appears 4 times in this file; the first occurrence is on line 365 | 365 | 
| The String literal " - " appears 6 times in this file; the first occurrence is on line 365 | 365 | 
| Use explicit scoping instead of the default package private level | 381–408 | 
| If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation | 383 | 
| Avoid variables with short names like jo | 395 | 
| Rather than using a lot of String arguments, consider using a container object for those values. | 417 | 
| Use explicit scoping instead of the default package private level | 417–445 | 
| If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation | 419 | 
| Avoid unused local variables such as 'strResponse'. | 426 | 
| Use explicit scoping instead of the default package private level | 454–490 | 
| Avoid reassigning parameters such as 'strMessage' | 454 | 
| If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation | 456 | 
| Use explicit scoping instead of the default package private level | 498–515 | 
| If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation | 500 | 
| The method 'sendMessage' has a Modified Cyclomatic Complexity of 10. | 522–572 | 
| The method sendMessage() has an NPath complexity of 512 | 522–572 | 
| Use explicit scoping instead of the default package private level | 522–572 | 
| The method 'sendMessage' has a Cyclomatic Complexity of 10. | 522–572 | 
| The method 'sendMessage' has a Standard Cyclomatic Complexity of 10. | 522–572 | 
| If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation | 524 | 
| Use explicit scoping instead of the default package private level | 580–596 | 
| If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation | 582 | 
| Use explicit scoping instead of the default package private level | 604–620 | 
| If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation | 606 | 
| Use explicit scoping instead of the default package private level | 630–647 | 
| If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation | 632 | 
| Use explicit scoping instead of the default package private level | 654–671 | 
| If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation | 656 | 
| Use explicit scoping instead of the default package private level | 679–696 | 
| If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation | 681 | 
| Use explicit scoping instead of the default package private level | 705–723 | 
| If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation | 707 | 
| Use explicit scoping instead of the default package private level | 736–754 | 
| If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation | 738 | 
| Use explicit scoping instead of the default package private level | 762–779 | 
| If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation | 764 | 
| Use explicit scoping instead of the default package private level | 788–805 | 
| If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation | 790 | 
| Violation | Line | 
|---|---|
| All methods are static. Consider using a utility class instead. Alternatively, you could add a private constructor or make the class abstract to silence this warning. | 22–154 | 
| If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation | 55 | 
| Assigning an Object to null is a code smell. Consider refactoring. | 56 | 
| If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation | 80 | 
| Assigning an Object to null is a code smell. Consider refactoring. | 81 | 
| Assigning an Object to null is a code smell. Consider refactoring. | 107 | 
| If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation | 108 | 
| If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation | 133 | 
| Assigning an Object to null is a code smell. Consider refactoring. | 134 | 
| Violation | Line | 
|---|---|
| Possible God class (WMC=100, ATFD=64, TCC=0.002150537634408602) | 34–765 | 
| Avoid unused imports such as 'java.sql.Date' | 36 | 
| Avoid unused imports such as 'java.sql.Date' | 36 | 
| Avoid unused imports such as 'com.sun.org.apache.xerces.internal.impl.xpath.regex.ParseException' | 46 | 
| Avoid unused imports such as 'com.sun.org.apache.xerces.internal.impl.xpath.regex.ParseException' | 46 | 
| Avoid unused imports such as 'fr.paris.lutece.util.date.DateUtil' | 58 | 
| Avoid unused imports such as 'fr.paris.lutece.util.date.DateUtil' | 58 | 
| The Logger variable declaration does not contain the static and final modifiers | 84 | 
| When instantiating a SimpleDateFormat object, specify a Locale | 87 | 
| Singleton is not thread safe | 106–109 | 
| Avoid declaring a variable if it is unreferenced before a possible exit point. | 126 | 
| Assigning an Object to null is a code smell. Consider refactoring. | 130 | 
| Avoid declaring a variable if it is unreferenced before a possible exit point. | 168 | 
| Assigning an Object to null is a code smell. Consider refactoring. | 414 | 
| Assigning an Object to null is a code smell. Consider refactoring. | 440 | 
| An empty statement (semicolon) not part of a loop | 440 | 
| Rather than using a lot of String arguments, consider using a container object for those values. | 501 | 
| When doing a String.toLowerCase()/toUpperCase() call, use a Locale | 520 | 
| Using equalsIgnoreCase() is cleaner than using toUpperCase/toLowerCase().equals(). | 520 | 
| Static DateFormatter objects should be accessed in a synchronized manner | 700 | 
| Violation | Line | 
|---|---|
| It is a good practice to call super() in a constructor | 47–50 | 
| Violation | Line | 
|---|---|
| It is a good practice to call super() in a constructor | 47–50 | 
| Violation | Line | 
|---|---|
| Assigning an Object to null is a code smell. Consider refactoring. | 109 | 
| Violation | Line | 
|---|---|
| Avoid unused imports such as 'fr.paris.lutece.plugins.parisconnect.business.AlertHome' | 37 | 
| Avoid unused imports such as 'fr.paris.lutece.plugins.parisconnect.business.AlertHome' | 37 | 
| Avoid unused imports such as 'fr.paris.lutece.plugins.parisconnect.business.Newsletter' | 40 | 
| Avoid unused imports such as 'fr.paris.lutece.plugins.parisconnect.business.Newsletter' | 40 | 
| Avoid unused imports such as 'fr.paris.lutece.util.ReferenceList' | 47 | 
| Avoid unused imports such as 'fr.paris.lutece.util.ReferenceList' | 47 | 
| Avoid unused imports such as 'fr.paris.lutece.util.url.UrlItem' | 48 | 
| Avoid unused imports such as 'fr.paris.lutece.util.url.UrlItem' | 48 | 
| Avoid unused imports such as 'fr.paris.lutece.portal.service.message.SiteMessageService' | 49 | 
| Avoid unused imports such as 'fr.paris.lutece.portal.service.message.SiteMessageService' | 49 | 
| Avoid unused imports such as 'fr.paris.lutece.portal.service.message.SiteMessage' | 50 | 
| Avoid unused imports such as 'fr.paris.lutece.portal.service.message.SiteMessage' | 50 | 
| Avoid unused imports such as 'fr.paris.lutece.portal.service.message.SiteMessageException' | 51 | 
| Avoid unused imports such as 'fr.paris.lutece.portal.service.message.SiteMessageException' | 51 | 
| The class 'AlertXPage' has a Cyclomatic Complexity of 6 (Highest = 10). | 68–228 | 
| The method 'getManageAlerts' has a Cyclomatic Complexity of 10. | 101–171 | 
| Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() | 133 | 
| Violation | Line | 
|---|---|
| Assigning an Object to null is a code smell. Consider refactoring. | 107 | 
| Violation | Line | 
|---|---|
| Abstract classes should be named AbstractXXX | 49–98 | 
| Perhaps '_nDefaultItemsPerPage' could be replaced by a local variable. | 65 | 
| Do not add empty strings | 92 | 
| Violation | Line | 
|---|---|
| Avoid unused imports such as 'fr.paris.lutece.plugins.parisconnect.business.Alert' | 36 | 
| Avoid unused imports such as 'fr.paris.lutece.plugins.parisconnect.business.Alert' | 36 | 
| Avoid unused imports such as 'fr.paris.lutece.plugins.parisconnect.business.AlertHome' | 37 | 
| Avoid unused imports such as 'fr.paris.lutece.plugins.parisconnect.business.AlertHome' | 37 | 
| Avoid unused imports such as 'fr.paris.lutece.plugins.parisconnect.business.Category' | 38 | 
| Avoid unused imports such as 'fr.paris.lutece.plugins.parisconnect.business.Category' | 38 | 
| Avoid unused imports such as 'fr.paris.lutece.plugins.parisconnect.business.CategoryHome' | 39 | 
| Avoid unused imports such as 'fr.paris.lutece.plugins.parisconnect.business.CategoryHome' | 39 | 
| Avoid unused imports such as 'fr.paris.lutece.plugins.parisconnect.business.Newsletter' | 41 | 
| Avoid unused imports such as 'fr.paris.lutece.plugins.parisconnect.business.Newsletter' | 41 | 
| Avoid unused imports such as 'fr.paris.lutece.portal.util.mvc.commons.annotations.Action' | 44 | 
| Avoid unused imports such as 'fr.paris.lutece.portal.util.mvc.commons.annotations.Action' | 44 | 
| Avoid unused imports such as 'fr.paris.lutece.util.ReferenceList' | 49 | 
| Avoid unused imports such as 'fr.paris.lutece.util.ReferenceList' | 49 | 
| Avoid unused imports such as 'fr.paris.lutece.util.url.UrlItem' | 50 | 
| Avoid unused imports such as 'fr.paris.lutece.util.url.UrlItem' | 50 | 
| Avoid unused imports such as 'fr.paris.lutece.portal.service.message.SiteMessageService' | 51 | 
| Avoid unused imports such as 'fr.paris.lutece.portal.service.message.SiteMessageService' | 51 | 
| Avoid unused imports such as 'fr.paris.lutece.portal.service.message.SiteMessage' | 52 | 
| Avoid unused imports such as 'fr.paris.lutece.portal.service.message.SiteMessage' | 52 | 
| Avoid unused imports such as 'fr.paris.lutece.portal.service.message.SiteMessageException' | 53 | 
| Avoid unused imports such as 'fr.paris.lutece.portal.service.message.SiteMessageException' | 53 | 
| Avoid unused imports such as 'java.util.ArrayList' | 58 | 
| Avoid unused imports such as 'java.util.ArrayList' | 58 | 
| Avoid declaring a variable if it is unreferenced before a possible exit point. | 106 | 
| Avoid declaring a variable if it is unreferenced before a possible exit point. | 107 | 
| 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. | 142 | 
| Avoid declaring a variable if it is unreferenced before a possible exit point. | 145 | 
| Avoid declaring a variable if it is unreferenced before a possible exit point. | 147 | 
| If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation | 204 | 
| Violation | Line | 
|---|---|
| Avoid unused imports such as 'fr.paris.lutece.util.ReferenceItem' | 55 | 
| Avoid unused imports such as 'fr.paris.lutece.util.ReferenceItem' | 55 | 
| Avoid unused private fields such as 'ERROR_PICTURE_EMPTY'. | 110 | 
| Assigning an Object to null is a code smell. Consider refactoring. | 124 | 
| Avoid declaring a variable if it is unreferenced before a possible exit point. | 162 | 
| Avoid declaring a variable if it is unreferenced before a possible exit point. | 273 | 
| Violation | Line | 
|---|---|
| Avoid unused private fields such as 'JSP_PAGE_PORTAL'. | 65 | 
| Avoid unused private fields such as 'PARAM_ACTION'. | 69 | 
| Avoid unused private fields such as 'PARAM_PAGE'. | 70 | 
| Avoid unused private fields such as 'MARK_NEWSLETTER'. | 76 | 
| Avoid unused private fields such as 'MESSAGE_CONFIRM_REMOVE_NEWSLETTER'. | 79 | 
| Violation | Line | 
|---|---|
| Deeply nested if..then statements are hard to read | 116–124 | 
| Violation | Line | 
|---|---|
| The class 'MyDashboardAlerts' has a Cyclomatic Complexity of 4 (Highest = 10). | 23–123 | 
| The method 'getDashboardData' has a Cyclomatic Complexity of 10. | 37–109 | 
| If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation | 39 | 
| Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() | 68 | 
| Violation | Line | 
|---|---|
| If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation | 37 | 
| Violation | Line | 
|---|---|
| If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation | 33 | 
| Violation | Line | 
|---|---|
| Avoid declaring a variable if it is unreferenced before a possible exit point. | 97 |