Le document suivant contient les résultats de PMD 5.5.1.
| Violation | Ligne |
|---|---|
| Avoid unused imports such as 'javax.validation.constraints' | 36 |
| Avoid unused imports such as 'org.hibernate.validator.constraints' | 37 |
| Violation | Ligne |
|---|---|
| A getX() method which returns a boolean should be named isX() | 158–161 |
| Violation | Ligne |
|---|---|
| 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 | Ligne |
|---|---|
| It is a good practice to call super() in a constructor | 52–55 |
| Violation | Ligne |
|---|---|
| Avoid variables with short names like p | 63 |
| Avoid variables with short names like p | 92 |
| Violation | Ligne |
|---|---|
| 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 | Ligne |
|---|---|
| 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 | Ligne |
|---|---|
| Avoid variables with short names like ID | 48 |
| Violation | Ligne |
|---|---|
| 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 | Ligne |
|---|---|
| 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 | Ligne |
|---|---|
| It is a good practice to call super() in a constructor | 47–50 |
| Violation | Ligne |
|---|---|
| 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 | Ligne |
|---|---|
| It is a good practice to call super() in a constructor | 47–50 |
| Violation | Ligne |
|---|---|
| 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 | Ligne |
|---|---|
| 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 | Ligne |
|---|---|
| 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 | Ligne |
|---|---|
| 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 | Ligne |
|---|---|
| It is a good practice to call super() in a constructor | 47–50 |
| Violation | Ligne |
|---|---|
| It is a good practice to call super() in a constructor | 47–50 |
| Violation | Ligne |
|---|---|
| Assigning an Object to null is a code smell. Consider refactoring. | 109 |
| Violation | Ligne |
|---|---|
| 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 | Ligne |
|---|---|
| Assigning an Object to null is a code smell. Consider refactoring. | 107 |
| Violation | Ligne |
|---|---|
| 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 | Ligne |
|---|---|
| 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 | Ligne |
|---|---|
| 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 | Ligne |
|---|---|
| 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 | Ligne |
|---|---|
| Deeply nested if..then statements are hard to read | 116–124 |
| Violation | Ligne |
|---|---|
| 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 | Ligne |
|---|---|
| If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation | 37 |
| Violation | Ligne |
|---|---|
| If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation | 33 |
| Violation | Ligne |
|---|---|
| Avoid declaring a variable if it is unreferenced before a possible exit point. | 97 |