org.sonar.plugins.findbugs.rules.xml Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of sonar-findbugs-plugin Show documentation
Show all versions of sonar-findbugs-plugin Show documentation
FindBugs is a program that uses static analysis to look for bugs in Java code. It can detect a variety of common coding mistakes, including thread synchronization problems, misuse of API methods.
<rules> <rule key="BC_IMPOSSIBLE_DOWNCAST"> <priority>BLOCKER</priority> <name><![CDATA[Correctness - Impossible downcast]]></name> <configKey><![CDATA[BC_IMPOSSIBLE_DOWNCAST]]></configKey> </rule> <rule key="BC_IMPOSSIBLE_DOWNCAST_OF_TOARRAY"> <priority>BLOCKER</priority> <name><![CDATA[Correctness - Impossible downcast of toArray() result]]></name> <configKey><![CDATA[BC_IMPOSSIBLE_DOWNCAST_OF_TOARRAY]]></configKey> </rule> <rule key="EC_INCOMPATIBLE_ARRAY_COMPARE"> <priority>BLOCKER</priority> <name><![CDATA[Correctness - equals(...) used to compare incompatible arrays]]></name> <configKey><![CDATA[EC_INCOMPATIBLE_ARRAY_COMPARE]]></configKey> <status>DEPRECATED</status> </rule> <rule key="NP_CLOSING_NULL"> <priority>BLOCKER</priority> <name><![CDATA[Correctness - close() invoked on a value that is always null]]></name> <configKey><![CDATA[NP_CLOSING_NULL]]></configKey> </rule> <rule key="RC_REF_COMPARISON_BAD_PRACTICE"> <priority>MAJOR</priority> <name><![CDATA[Correctness - Suspicious reference comparison to constant]]></name> <configKey><![CDATA[RC_REF_COMPARISON_BAD_PRACTICE]]></configKey> </rule> <rule key="RC_REF_COMPARISON_BAD_PRACTICE_BOOLEAN"> <priority>MAJOR</priority> <name><![CDATA[Correctness - Suspicious reference comparison of Boolean values]]></name> <configKey><![CDATA[RC_REF_COMPARISON_BAD_PRACTICE_BOOLEAN]]></configKey> </rule> <rule key="RV_RETURN_VALUE_OF_PUTIFABSENT_IGNORED"> <priority>MAJOR</priority> <name><![CDATA[Correctness - Return value of putIfAbsent ignored, value passed to putIfAbsent reused ]]></name> <configKey><![CDATA[RV_RETURN_VALUE_OF_PUTIFABSENT_IGNORED]]></configKey> </rule> <rule key="SIC_THREADLOCAL_DEADLY_EMBRACE"> <priority>MAJOR</priority> <name><![CDATA[Correctness - Deadly embrace of non-static inner class and thread local]]></name> <configKey><![CDATA[SIC_THREADLOCAL_DEADLY_EMBRACE]]></configKey> </rule> <rule key="UR_UNINIT_READ_CALLED_FROM_SUPER_CONSTRUCTOR"> <priority>MAJOR</priority> <name><![CDATA[Correctness - Uninitialized read of field method called from constructor of superclass]]></name> <configKey><![CDATA[UR_UNINIT_READ_CALLED_FROM_SUPER_CONSTRUCTOR]]></configKey> </rule> <rule key="VA_FORMAT_STRING_EXPECTED_MESSAGE_FORMAT_SUPPLIED"> <priority>MAJOR</priority> <name><![CDATA[Correctness - MessageFormat supplied where printf style format expected ]]></name> <configKey><![CDATA[VA_FORMAT_STRING_EXPECTED_MESSAGE_FORMAT_SUPPLIED]]></configKey> </rule> <rule key="UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR"> <priority>MINOR</priority> <name><![CDATA[Correctness - Field not initialized in constructor]]></name> <configKey><![CDATA[UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR]]></configKey> </rule> <rule key="NP_UNWRITTEN_FIELD"> <priority>MAJOR</priority> <name><![CDATA[Correctness - Read of unwritten field]]></name> <configKey><![CDATA[NP_UNWRITTEN_FIELD]]></configKey> </rule> <rule key="UWF_UNWRITTEN_FIELD"> <priority>MINOR</priority> <name><![CDATA[Correctness - Unwritten field]]></name> <configKey><![CDATA[UWF_UNWRITTEN_FIELD]]></configKey> </rule> <rule key="SKIPPED_CLASS_TOO_BIG"> <priority>MINOR</priority> <name><![CDATA[Dodgy - Class too big for analysis]]></name> <configKey><![CDATA[SKIPPED_CLASS_TOO_BIG]]></configKey> </rule> <rule key="DMI_SCHEDULED_THREAD_POOL_EXECUTOR_WITH_ZERO_CORE_THREADS"> <priority>MINOR</priority> <name><![CDATA[Correctness - Creation of ScheduledThreadPoolExecutor with zero core threads]]></name> <configKey><![CDATA[DMI_SCHEDULED_THREAD_POOL_EXECUTOR_WITH_ZERO_CORE_THREADS]]></configKey> </rule> <rule key="DMI_FUTILE_ATTEMPT_TO_CHANGE_MAXPOOL_SIZE_OF_SCHEDULED_THREAD_POOL_EXECUTOR"> <priority>MINOR</priority> <name><![CDATA[Correctness - Futile attempt to change max pool size of ScheduledThreadPoolExecutor]]></name> <configKey><![CDATA[DMI_FUTILE_ATTEMPT_TO_CHANGE_MAXPOOL_SIZE_OF_SCHEDULED_THREAD_POOL_EXECUTOR]]></configKey> </rule> <rule key="DMI_UNSUPPORTED_METHOD"> <priority>MAJOR</priority> <name><![CDATA[Dodgy - Call to unsupported method]]></name> <configKey><![CDATA[DMI_UNSUPPORTED_METHOD]]></configKey> </rule> <rule key="DMI_EMPTY_DB_PASSWORD"> <priority>CRITICAL</priority> <name><![CDATA[Security - Empty database password]]></name> <configKey><![CDATA[DMI_EMPTY_DB_PASSWORD]]></configKey> </rule> <rule key="DMI_CONSTANT_DB_PASSWORD"> <priority>BLOCKER</priority> <name><![CDATA[Security - Hardcoded constant database password]]></name> <configKey><![CDATA[DMI_CONSTANT_DB_PASSWORD]]></configKey> <tag>owasp-top10</tag> <tag>cwe</tag> </rule> <rule key="HRS_REQUEST_PARAMETER_TO_COOKIE"> <priority>MAJOR</priority> <name><![CDATA[Security - HTTP cookie formed from untrusted input]]></name> <configKey><![CDATA[HRS_REQUEST_PARAMETER_TO_COOKIE]]></configKey> </rule> <rule key="HRS_REQUEST_PARAMETER_TO_HTTP_HEADER"> <priority>MAJOR</priority> <name><![CDATA[Security - HTTP Response splitting vulnerability]]></name> <configKey><![CDATA[HRS_REQUEST_PARAMETER_TO_HTTP_HEADER]]></configKey> <tag>owasp-top10</tag> <tag>cwe</tag> </rule> <rule key="XSS_REQUEST_PARAMETER_TO_SERVLET_WRITER"> <priority>CRITICAL</priority> <name><![CDATA[Security - Servlet reflected cross site scripting vulnerability]]></name> <configKey><![CDATA[XSS_REQUEST_PARAMETER_TO_SERVLET_WRITER]]></configKey> <tag>owasp-top10</tag> <tag>cwe</tag> </rule> <rule key="XSS_REQUEST_PARAMETER_TO_SEND_ERROR"> <priority>CRITICAL</priority> <name><![CDATA[Security - Servlet reflected cross site scripting vulnerability]]></name> <configKey><![CDATA[XSS_REQUEST_PARAMETER_TO_SEND_ERROR]]></configKey> <tag>owasp-top10</tag> <tag>cwe</tag> </rule> <rule key="XSS_REQUEST_PARAMETER_TO_JSP_WRITER"> <priority>CRITICAL</priority> <name><![CDATA[Security - JSP reflected cross site scripting vulnerability]]></name> <configKey><![CDATA[XSS_REQUEST_PARAMETER_TO_JSP_WRITER]]></configKey> <tag>owasp-top10</tag> <tag>cwe</tag> </rule> <rule key="SW_SWING_METHODS_INVOKED_IN_SWING_THREAD"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Certain swing methods needs to be invoked in Swing thread]]></name> <configKey><![CDATA[SW_SWING_METHODS_INVOKED_IN_SWING_THREAD]]></configKey> </rule> <rule key="IL_INFINITE_LOOP"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - An apparent infinite loop]]></name> <configKey><![CDATA[IL_INFINITE_LOOP]]></configKey> </rule> <rule key="IL_INFINITE_RECURSIVE_LOOP"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - An apparent infinite recursive loop]]></name> <configKey><![CDATA[IL_INFINITE_RECURSIVE_LOOP]]></configKey> </rule> <rule key="IL_CONTAINER_ADDED_TO_ITSELF"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - A collection is added to itself]]></name> <configKey><![CDATA[IL_CONTAINER_ADDED_TO_ITSELF]]></configKey> </rule> <rule key="VO_VOLATILE_REFERENCE_TO_ARRAY"> <priority>MAJOR</priority> <name><![CDATA[Multithreaded correctness - A volatile reference to an array doesn't treat the array elements as volatile]]></name> <configKey><![CDATA[VO_VOLATILE_REFERENCE_TO_ARRAY]]></configKey> </rule> <rule key="UI_INHERITANCE_UNSAFE_GETRESOURCE"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Usage of GetResource may be unsafe if class is extended]]></name> <configKey><![CDATA[UI_INHERITANCE_UNSAFE_GETRESOURCE]]></configKey> </rule> <rule key="NP_BOOLEAN_RETURN_NULL"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Method with Boolean return type returns explicit null]]></name> <configKey><![CDATA[NP_BOOLEAN_RETURN_NULL]]></configKey> </rule> <rule key="NP_SYNC_AND_NULL_CHECK_FIELD"> <priority>MAJOR</priority> <name><![CDATA[Multithreaded correctness - Synchronize and null check on the same field.]]></name> <configKey><![CDATA[NP_SYNC_AND_NULL_CHECK_FIELD]]></configKey> </rule> <rule key="RpC_REPEATED_CONDITIONAL_TEST"> <priority>MAJOR</priority> <name><![CDATA[Correctness - Repeated conditional tests]]></name> <configKey><![CDATA[RpC_REPEATED_CONDITIONAL_TEST]]></configKey> </rule> <rule key="AM_CREATES_EMPTY_ZIP_FILE_ENTRY"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Creates an empty zip file entry]]></name> <configKey><![CDATA[AM_CREATES_EMPTY_ZIP_FILE_ENTRY]]></configKey> </rule> <rule key="AM_CREATES_EMPTY_JAR_FILE_ENTRY"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Creates an empty jar file entry]]></name> <configKey><![CDATA[AM_CREATES_EMPTY_JAR_FILE_ENTRY]]></configKey> </rule> <rule key="IMSE_DONT_CATCH_IMSE"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Dubious catching of IllegalMonitorStateException]]></name> <configKey><![CDATA[IMSE_DONT_CATCH_IMSE]]></configKey> </rule> <rule key="FL_MATH_USING_FLOAT_PRECISION"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Method performs math using floating point precision]]></name> <configKey><![CDATA[FL_MATH_USING_FLOAT_PRECISION]]></configKey> </rule> <rule key="CN_IDIOM"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Class implements Cloneable but does not define or use clone method]]></name> <configKey><![CDATA[CN_IDIOM]]></configKey> </rule> <rule key="CN_IMPLEMENTS_CLONE_BUT_NOT_CLONEABLE"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Class defines clone() but doesn't implement Cloneable]]></name> <configKey><![CDATA[CN_IMPLEMENTS_CLONE_BUT_NOT_CLONEABLE]]></configKey> </rule> <rule key="CN_IDIOM_NO_SUPER_CALL"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - clone method does not call super.clone()]]></name> <configKey><![CDATA[CN_IDIOM_NO_SUPER_CALL]]></configKey> <status>DEPRECATED</status> </rule> <rule key="NM_FUTURE_KEYWORD_USED_AS_IDENTIFIER"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Use of identifier that is a keyword in later versions of Java]]></name> <configKey><![CDATA[NM_FUTURE_KEYWORD_USED_AS_IDENTIFIER]]></configKey> </rule> <rule key="NM_FUTURE_KEYWORD_USED_AS_MEMBER_IDENTIFIER"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Use of identifier that is a keyword in later versions of Java]]></name> <configKey><![CDATA[NM_FUTURE_KEYWORD_USED_AS_MEMBER_IDENTIFIER]]></configKey> </rule> <rule key="DE_MIGHT_DROP"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Method might drop exception]]></name> <configKey><![CDATA[DE_MIGHT_DROP]]></configKey> </rule> <rule key="DE_MIGHT_IGNORE"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Method might ignore exception]]></name> <configKey><![CDATA[DE_MIGHT_IGNORE]]></configKey> </rule> <rule key="DP_DO_INSIDE_DO_PRIVILEGED"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Method invoked that should be only be invoked inside a doPrivileged block]]></name> <configKey><![CDATA[DP_DO_INSIDE_DO_PRIVILEGED]]></configKey> </rule> <rule key="DP_CREATE_CLASSLOADER_INSIDE_DO_PRIVILEGED"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Classloaders should only be created inside doPrivileged block]]></name> <configKey><![CDATA[DP_CREATE_CLASSLOADER_INSIDE_DO_PRIVILEGED]]></configKey> </rule> <rule key="JCIP_FIELD_ISNT_FINAL_IN_IMMUTABLE_CLASS"> <priority>MINOR</priority> <name><![CDATA[Bad practice - Fields of immutable classes should be final]]></name> <configKey><![CDATA[JCIP_FIELD_ISNT_FINAL_IN_IMMUTABLE_CLASS]]></configKey> </rule> <rule key="DMI_THREAD_PASSED_WHERE_RUNNABLE_EXPECTED"> <priority>MAJOR</priority> <name><![CDATA[Dodgy - Thread passed where Runnable expected]]></name> <configKey><![CDATA[DMI_THREAD_PASSED_WHERE_RUNNABLE_EXPECTED]]></configKey> </rule> <rule key="DMI_COLLECTION_OF_URLS"> <priority>BLOCKER</priority> <name><![CDATA[Performance - Maps and sets of URLs can be performance hogs]]></name> <configKey><![CDATA[DMI_COLLECTION_OF_URLS]]></configKey> </rule> <rule key="DMI_BLOCKING_METHODS_ON_URL"> <priority>BLOCKER</priority> <name><![CDATA[Performance - The equals and hashCode methods of URL are blocking]]></name> <configKey><![CDATA[DMI_BLOCKING_METHODS_ON_URL]]></configKey> </rule> <rule key="DMI_ANNOTATION_IS_NOT_VISIBLE_TO_REFLECTION"> <priority>MAJOR</priority> <name><![CDATA[Correctness - Can't use reflection to check for presence of annotation without runtime retention]]></name> <configKey><![CDATA[DMI_ANNOTATION_IS_NOT_VISIBLE_TO_REFLECTION]]></configKey> </rule> <rule key="DM_EXIT"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Method invokes System.exit(...)]]></name> <configKey><![CDATA[DM_EXIT]]></configKey> <status>DEPRECATED</status> </rule> <rule key="DM_RUN_FINALIZERS_ON_EXIT"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Method invokes dangerous method runFinalizersOnExit]]></name> <configKey><![CDATA[DM_RUN_FINALIZERS_ON_EXIT]]></configKey> </rule> <rule key="DM_STRING_CTOR"> <priority>MAJOR</priority> <name><![CDATA[Performance - Method invokes inefficient new String(String) constructor]]></name> <configKey><![CDATA[DM_STRING_CTOR]]></configKey> </rule> <rule key="DM_STRING_VOID_CTOR"> <priority>MAJOR</priority> <name><![CDATA[Performance - Method invokes inefficient new String() constructor]]></name> <configKey><![CDATA[DM_STRING_VOID_CTOR]]></configKey> </rule> <rule key="DM_STRING_TOSTRING"> <priority>INFO</priority> <name><![CDATA[Performance - Method invokes toString() method on a String]]></name> <configKey><![CDATA[DM_STRING_TOSTRING]]></configKey> </rule> <rule key="DM_GC"> <priority>MAJOR</priority> <name><![CDATA[Performance - Explicit garbage collection; extremely dubious except in benchmarking code]]></name> <configKey><![CDATA[DM_GC]]></configKey> <status>DEPRECATED</status> </rule> <rule key="DM_BOOLEAN_CTOR"> <priority>MAJOR</priority> <name><![CDATA[Performance - Method invokes inefficient Boolean constructor; use Boolean.valueOf(...) instead]]></name> <configKey><![CDATA[DM_BOOLEAN_CTOR]]></configKey> </rule> <rule key="DM_NUMBER_CTOR"> <priority>CRITICAL</priority> <name><![CDATA[Performance - Method invokes inefficient Number constructor; use static valueOf instead]]></name> <configKey><![CDATA[DM_NUMBER_CTOR]]></configKey> </rule> <rule key="DM_FP_NUMBER_CTOR"> <priority>MAJOR</priority> <name><![CDATA[Performance - Method invokes inefficient floating-point Number constructor; use static valueOf instead]]></name> <configKey><![CDATA[DM_FP_NUMBER_CTOR]]></configKey> </rule> <rule key="DM_CONVERT_CASE"> <priority>INFO</priority> <name><![CDATA[Internationalization - Consider using Locale parameterized version of invoked method]]></name> <configKey><![CDATA[DM_CONVERT_CASE]]></configKey> </rule> <rule key="BX_UNBOXED_AND_COERCED_FOR_TERNARY_OPERATOR"> <priority>MAJOR</priority> <name><![CDATA[Correctness - Primitive value is unboxed and coerced for ternary operator]]></name> <configKey><![CDATA[BX_UNBOXED_AND_COERCED_FOR_TERNARY_OPERATOR]]></configKey> </rule> <rule key="BX_BOXING_IMMEDIATELY_UNBOXED"> <priority>MAJOR</priority> <name><![CDATA[Performance - Primitive value is boxed and then immediately unboxed]]></name> <configKey><![CDATA[BX_BOXING_IMMEDIATELY_UNBOXED]]></configKey> </rule> <rule key="BX_BOXING_IMMEDIATELY_UNBOXED_TO_PERFORM_COERCION"> <priority>MAJOR</priority> <name><![CDATA[Performance - Primitive value is boxed then unboxed to perform primitive coercion]]></name> <configKey><![CDATA[BX_BOXING_IMMEDIATELY_UNBOXED_TO_PERFORM_COERCION]]></configKey> </rule> <rule key="DM_BOXED_PRIMITIVE_TOSTRING"> <priority>MAJOR</priority> <name><![CDATA[Performance - Method allocates a boxed primitive just to call toString]]></name> <configKey><![CDATA[DM_BOXED_PRIMITIVE_TOSTRING]]></configKey> </rule> <rule key="DM_NEW_FOR_GETCLASS"> <priority>MAJOR</priority> <name><![CDATA[Performance - Method allocates an object, only to get the class object]]></name> <configKey><![CDATA[DM_NEW_FOR_GETCLASS]]></configKey> </rule> <rule key="DM_MONITOR_WAIT_ON_CONDITION"> <priority>MAJOR</priority> <name><![CDATA[Multithreaded correctness - Monitor wait() called on Condition]]></name> <configKey><![CDATA[DM_MONITOR_WAIT_ON_CONDITION]]></configKey> </rule> <rule key="RV_01_TO_INT"> <priority>MAJOR</priority> <name><![CDATA[Correctness - Random value from 0 to 1 is coerced to the integer 0]]></name> <configKey><![CDATA[RV_01_TO_INT]]></configKey> </rule> <rule key="DM_NEXTINT_VIA_NEXTDOUBLE"> <priority>MAJOR</priority> <name><![CDATA[Performance - Use the nextInt method of Random rather than nextDouble to generate a random integer]]></name> <configKey><![CDATA[DM_NEXTINT_VIA_NEXTDOUBLE]]></configKey> </rule> <rule key="SQL_NONCONSTANT_STRING_PASSED_TO_EXECUTE"> <priority>CRITICAL</priority> <name><![CDATA[Security - Nonconstant string passed to execute method on an SQL statement]]></name> <configKey><![CDATA[SQL_NONCONSTANT_STRING_PASSED_TO_EXECUTE]]></configKey> <tag>owasp-top10</tag> <tag>cwe</tag> </rule> <rule key="SQL_PREPARED_STATEMENT_GENERATED_FROM_NONCONSTANT_STRING"> <priority>CRITICAL</priority> <name><![CDATA[Security - A prepared statement is generated from a nonconstant String]]></name> <configKey><![CDATA[SQL_PREPARED_STATEMENT_GENERATED_FROM_NONCONSTANT_STRING]]></configKey> <tag>owasp-top10</tag> <tag>cwe</tag> </rule> <rule key="DM_USELESS_THREAD"> <priority>MAJOR</priority> <name><![CDATA[Multithreaded correctness - A thread was created using the default empty run method]]></name> <configKey><![CDATA[DM_USELESS_THREAD]]></configKey> </rule> <rule key="DC_DOUBLECHECK"> <priority>MAJOR</priority> <name><![CDATA[Multithreaded correctness - Possible double check of field]]></name> <configKey><![CDATA[DC_DOUBLECHECK]]></configKey> </rule> <rule key="FI_FINALIZER_NULLS_FIELDS"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Finalizer nulls fields]]></name> <configKey><![CDATA[FI_FINALIZER_NULLS_FIELDS]]></configKey> </rule> <rule key="FI_FINALIZER_ONLY_NULLS_FIELDS"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Finalizer only nulls fields]]></name> <configKey><![CDATA[FI_FINALIZER_ONLY_NULLS_FIELDS]]></configKey> </rule> <rule key="FI_PUBLIC_SHOULD_BE_PROTECTED"> <priority>MAJOR</priority> <name><![CDATA[Malicious code vulnerability - Finalizer should be protected, not public]]></name> <configKey><![CDATA[FI_PUBLIC_SHOULD_BE_PROTECTED]]></configKey> </rule> <rule key="FI_EMPTY"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Empty finalizer should be deleted]]></name> <configKey><![CDATA[FI_EMPTY]]></configKey> </rule> <rule key="FI_NULLIFY_SUPER"> <priority>CRITICAL</priority> <name><![CDATA[Bad practice - Finalizer nullifies superclass finalizer]]></name> <configKey><![CDATA[FI_NULLIFY_SUPER]]></configKey> </rule> <rule key="FI_USELESS"> <priority>MINOR</priority> <name><![CDATA[Bad practice - Finalizer does nothing but call superclass finalizer]]></name> <configKey><![CDATA[FI_USELESS]]></configKey> </rule> <rule key="FI_MISSING_SUPER_CALL"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Finalizer does not call superclass finalizer]]></name> <configKey><![CDATA[FI_MISSING_SUPER_CALL]]></configKey> </rule> <rule key="FI_EXPLICIT_INVOCATION"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Explicit invocation of finalizer]]></name> <configKey><![CDATA[FI_EXPLICIT_INVOCATION]]></configKey> <status>DEPRECATED</status> </rule> <rule key="EQ_CHECK_FOR_OPERAND_NOT_COMPATIBLE_WITH_THIS"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Equals checks for noncompatible operand]]></name> <configKey><![CDATA[EQ_CHECK_FOR_OPERAND_NOT_COMPATIBLE_WITH_THIS]]></configKey> </rule> <rule key="EQ_DONT_DEFINE_EQUALS_FOR_ENUM"> <priority>MAJOR</priority> <name><![CDATA[Correctness - Covariant equals() method defined for enum]]></name> <configKey><![CDATA[EQ_DONT_DEFINE_EQUALS_FOR_ENUM]]></configKey> <status>DEPRECATED</status> </rule> <rule key="EQ_SELF_USE_OBJECT"> <priority>MAJOR</priority> <name><![CDATA[Correctness - Covariant equals() method defined, Object.equals(Object) inherited]]></name> <configKey><![CDATA[EQ_SELF_USE_OBJECT]]></configKey> <status>DEPRECATED</status> </rule> <rule key="EQ_OTHER_USE_OBJECT"> <priority>MAJOR</priority> <name><![CDATA[Correctness - equals() method defined that doesn't override Object.equals(Object)]]></name> <configKey><![CDATA[EQ_OTHER_USE_OBJECT]]></configKey> </rule> <rule key="EQ_OTHER_NO_OBJECT"> <priority>MAJOR</priority> <name><![CDATA[Correctness - equals() method defined that doesn't override equals(Object)]]></name> <configKey><![CDATA[EQ_OTHER_NO_OBJECT]]></configKey> <status>DEPRECATED</status> </rule> <!-- warning : http://sourceforge.net/tracker/?func=detail&aid=2786054&group_id=96405&atid=614693 --> <rule key="EQ_DOESNT_OVERRIDE_EQUALS"> <name><![CDATA[Dodgy - Class doesn't override equals in superclass]]></name> <configKey><![CDATA[EQ_DOESNT_OVERRIDE_EQUALS]]></configKey> </rule> <rule key="EQ_SELF_NO_OBJECT"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Covariant equals() method defined]]></name> <configKey><![CDATA[EQ_SELF_NO_OBJECT]]></configKey> <status>DEPRECATED</status> </rule> <rule key="EQ_OVERRIDING_EQUALS_NOT_SYMMETRIC"> <priority>MAJOR</priority> <name><![CDATA[Correctness - equals method overrides equals in superclass and may not be symmetric]]></name> <configKey><![CDATA[EQ_OVERRIDING_EQUALS_NOT_SYMMETRIC]]></configKey> </rule> <rule key="EQ_GETCLASS_AND_CLASS_CONSTANT"> <priority>CRITICAL</priority> <name><![CDATA[Bad practice - equals method fails for subtypes]]></name> <configKey><![CDATA[EQ_GETCLASS_AND_CLASS_CONSTANT]]></configKey> </rule> <rule key="EQ_UNUSUAL"> <priority>MINOR</priority> <name><![CDATA[Dodgy - Unusual equals method ]]></name> <configKey><![CDATA[EQ_UNUSUAL]]></configKey> </rule> <rule key="EQ_COMPARING_CLASS_NAMES"> <priority>MAJOR</priority> <name><![CDATA[Correctness - equals method compares class names rather than class objects]]></name> <configKey><![CDATA[EQ_COMPARING_CLASS_NAMES]]></configKey> </rule> <rule key="EQ_ALWAYS_TRUE"> <priority>BLOCKER</priority> <name><![CDATA[Correctness - equals method always returns true]]></name> <configKey><![CDATA[EQ_ALWAYS_TRUE]]></configKey> </rule> <rule key="EQ_ALWAYS_FALSE"> <priority>BLOCKER</priority> <name><![CDATA[Correctness - equals method always returns false]]></name> <configKey><![CDATA[EQ_ALWAYS_FALSE]]></configKey> </rule> <rule key="HSC_HUGE_SHARED_STRING_CONSTANT"> <priority>CRITICAL</priority> <name><![CDATA[Performance - Huge string constants is duplicated across multiple class files]]></name> <configKey><![CDATA[HSC_HUGE_SHARED_STRING_CONSTANT]]></configKey> </rule> <rule key="NP_ARGUMENT_MIGHT_BE_NULL"> <priority>MAJOR</priority> <name><![CDATA[Correctness - Method does not check for null argument]]></name> <configKey><![CDATA[NP_ARGUMENT_MIGHT_BE_NULL]]></configKey> </rule> <rule key="NP_EQUALS_SHOULD_HANDLE_NULL_ARGUMENT"> <priority>CRITICAL</priority> <name><![CDATA[Bad practice - equals() method does not check for null argument]]></name> <configKey><![CDATA[NP_EQUALS_SHOULD_HANDLE_NULL_ARGUMENT]]></configKey> </rule> <rule key="CO_SELF_NO_OBJECT"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Covariant compareTo() method defined]]></name> <configKey><![CDATA[CO_SELF_NO_OBJECT]]></configKey> </rule> <rule key="HE_SIGNATURE_DECLARES_HASHING_OF_UNHASHABLE_CLASS"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Signature declares use of unhashable class in hashed construct]]></name> <configKey><![CDATA[HE_SIGNATURE_DECLARES_HASHING_OF_UNHASHABLE_CLASS]]></configKey> </rule> <rule key="HE_USE_OF_UNHASHABLE_CLASS"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Use of class without a hashCode() method in a hashed data structure]]></name> <configKey><![CDATA[HE_USE_OF_UNHASHABLE_CLASS]]></configKey> </rule> <rule key="HE_HASHCODE_USE_OBJECT_EQUALS"> <priority>CRITICAL</priority> <name><![CDATA[Bad practice - Class defines hashCode() and uses Object.equals()]]></name> <configKey><![CDATA[HE_HASHCODE_USE_OBJECT_EQUALS]]></configKey> <status>DEPRECATED</status> </rule> <rule key="EQ_COMPARETO_USE_OBJECT_EQUALS"> <priority>CRITICAL</priority> <name><![CDATA[Bad practice - Class defines compareTo(...) and uses Object.equals()]]></name> <configKey><![CDATA[EQ_COMPARETO_USE_OBJECT_EQUALS]]></configKey> <status>DEPRECATED</status> </rule> <rule key="HE_HASHCODE_NO_EQUALS"> <priority>CRITICAL</priority> <name><![CDATA[Bad practice - Class defines hashCode() but not equals()]]></name> <configKey><![CDATA[HE_HASHCODE_NO_EQUALS]]></configKey> <status>DEPRECATED</status> </rule> <rule key="HE_EQUALS_USE_HASHCODE"> <priority>CRITICAL</priority> <name><![CDATA[Bad practice - Class defines equals() and uses Object.hashCode()]]></name> <configKey><![CDATA[HE_EQUALS_USE_HASHCODE]]></configKey> <status>DEPRECATED</status> </rule> <rule key="HE_INHERITS_EQUALS_USE_HASHCODE"> <priority>CRITICAL</priority> <name><![CDATA[Bad practice - Class inherits equals() and uses Object.hashCode()]]></name> <configKey><![CDATA[HE_INHERITS_EQUALS_USE_HASHCODE]]></configKey> </rule> <rule key="HE_EQUALS_NO_HASHCODE"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Class defines equals() but not hashCode()]]></name> <configKey><![CDATA[HE_EQUALS_NO_HASHCODE]]></configKey> <status>DEPRECATED</status> </rule> <rule key="EQ_ABSTRACT_SELF"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Abstract class defines covariant equals() method]]></name> <configKey><![CDATA[EQ_ABSTRACT_SELF]]></configKey> <status>DEPRECATED</status> </rule> <rule key="ES_COMPARING_STRINGS_WITH_EQ"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Comparison of String objects using == or !=]]></name> <configKey><![CDATA[ES_COMPARING_STRINGS_WITH_EQ]]></configKey> </rule> <rule key="ES_COMPARING_PARAMETER_STRING_WITH_EQ"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Comparison of String parameter using == or !=]]></name> <configKey><![CDATA[ES_COMPARING_PARAMETER_STRING_WITH_EQ]]></configKey> </rule> <rule key="CO_ABSTRACT_SELF"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Abstract class defines covariant compareTo() method]]></name> <configKey><![CDATA[CO_ABSTRACT_SELF]]></configKey> </rule> <rule key="IS_FIELD_NOT_GUARDED"> <priority>CRITICAL</priority> <name><![CDATA[Multithreaded correctness - Field not guarded against concurrent access]]></name> <configKey><![CDATA[IS_FIELD_NOT_GUARDED]]></configKey> </rule> <rule key="MSF_MUTABLE_SERVLET_FIELD"> <priority>MAJOR</priority> <name><![CDATA[Multithreaded correctness - Mutable servlet field]]></name> <configKey><![CDATA[MSF_MUTABLE_SERVLET_FIELD]]></configKey> </rule> <rule key="IS2_INCONSISTENT_SYNC"> <priority>CRITICAL</priority> <name><![CDATA[Multithreaded correctness - Inconsistent synchronization]]></name> <configKey><![CDATA[IS2_INCONSISTENT_SYNC]]></configKey> </rule> <rule key="NN_NAKED_NOTIFY"> <priority>CRITICAL</priority> <name><![CDATA[Multithreaded correctness - Naked notify]]></name> <configKey><![CDATA[NN_NAKED_NOTIFY]]></configKey> </rule> <rule key="MS_EXPOSE_REP"> <priority>CRITICAL</priority> <name><![CDATA[Malicious code vulnerability - Public static method may expose internal representation by returning array]]></name> <configKey><![CDATA[MS_EXPOSE_REP]]></configKey> </rule> <rule key="EI_EXPOSE_REP"> <priority>MAJOR</priority> <name><![CDATA[Malicious code vulnerability - May expose internal representation by returning reference to mutable object]]></name> <configKey><![CDATA[EI_EXPOSE_REP]]></configKey> </rule> <rule key="EI_EXPOSE_REP2"> <priority>MAJOR</priority> <name><![CDATA[Malicious code vulnerability - May expose internal representation by incorporating reference to mutable object]]></name> <configKey><![CDATA[EI_EXPOSE_REP2]]></configKey> </rule> <rule key="EI_EXPOSE_STATIC_REP2"> <priority>MAJOR</priority> <name><![CDATA[Malicious code vulnerability - May expose internal static state by storing a mutable object into a static field]]></name> <configKey><![CDATA[EI_EXPOSE_STATIC_REP2]]></configKey> </rule> <rule key="RU_INVOKE_RUN"> <priority>MAJOR</priority> <name><![CDATA[Multithreaded correctness - Invokes run on a thread (did you mean to start it instead?)]]></name> <configKey><![CDATA[RU_INVOKE_RUN]]></configKey> <status>DEPRECATED</status> </rule> <rule key="SP_SPIN_ON_FIELD"> <priority>MAJOR</priority> <name><![CDATA[Multithreaded correctness - Method spins on field]]></name> <configKey><![CDATA[SP_SPIN_ON_FIELD]]></configKey> </rule> <rule key="NS_DANGEROUS_NON_SHORT_CIRCUIT"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - Potentially dangerous use of non-short-circuit logic]]></name> <configKey><![CDATA[NS_DANGEROUS_NON_SHORT_CIRCUIT]]></configKey> </rule> <rule key="NS_NON_SHORT_CIRCUIT"> <priority>MAJOR</priority> <name><![CDATA[Dodgy - Questionable use of non-short-circuit logic]]></name> <configKey><![CDATA[NS_NON_SHORT_CIRCUIT]]></configKey> </rule> <rule key="TLW_TWO_LOCK_WAIT"> <priority>MAJOR</priority> <name><![CDATA[Multithreaded correctness - Wait with two locks held]]></name> <configKey><![CDATA[TLW_TWO_LOCK_WAIT]]></configKey> </rule> <rule key="UW_UNCOND_WAIT"> <priority>MAJOR</priority> <name><![CDATA[Multithreaded correctness - Unconditional wait]]></name> <configKey><![CDATA[UW_UNCOND_WAIT]]></configKey> </rule> <rule key="UR_UNINIT_READ"> <priority>MAJOR</priority> <name><![CDATA[Correctness - Uninitialized read of field in constructor]]></name> <configKey><![CDATA[UR_UNINIT_READ]]></configKey> </rule> <rule key="UG_SYNC_SET_UNSYNC_GET"> <priority>MAJOR</priority> <name><![CDATA[Multithreaded correctness - Unsynchronized get method, synchronized set method]]></name> <configKey><![CDATA[UG_SYNC_SET_UNSYNC_GET]]></configKey> </rule> <rule key="IC_INIT_CIRCULARITY"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - Initialization circularity]]></name> <configKey><![CDATA[IC_INIT_CIRCULARITY]]></configKey> </rule> <rule key="IC_SUPERCLASS_USES_SUBCLASS_DURING_INITIALIZATION"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Superclass uses subclass during initialization]]></name> <configKey><![CDATA[IC_SUPERCLASS_USES_SUBCLASS_DURING_INITIALIZATION]]></configKey> </rule> <rule key="IT_NO_SUCH_ELEMENT"> <priority>MINOR</priority> <name><![CDATA[Bad practice - Iterator next() method can't throw NoSuchElementException]]></name> <configKey><![CDATA[IT_NO_SUCH_ELEMENT]]></configKey> </rule> <rule key="DL_SYNCHRONIZATION_ON_SHARED_CONSTANT"> <priority>CRITICAL</priority> <name><![CDATA[Multithreaded correctness - Synchronization on interned String could lead to deadlock]]></name> <configKey><![CDATA[DL_SYNCHRONIZATION_ON_SHARED_CONSTANT]]></configKey> </rule> <rule key="DL_SYNCHRONIZATION_ON_BOOLEAN"> <priority>CRITICAL</priority> <name><![CDATA[Multithreaded correctness - Synchronization on Boolean could lead to deadlock]]></name> <configKey><![CDATA[DL_SYNCHRONIZATION_ON_BOOLEAN]]></configKey> </rule> <rule key="DL_SYNCHRONIZATION_ON_UNSHARED_BOXED_PRIMITIVE"> <priority>CRITICAL</priority> <name><![CDATA[Multithreaded correctness - Synchronization on boxed primitive values]]></name> <configKey><![CDATA[DL_SYNCHRONIZATION_ON_UNSHARED_BOXED_PRIMITIVE]]></configKey> </rule> <rule key="DL_SYNCHRONIZATION_ON_BOXED_PRIMITIVE"> <priority>CRITICAL</priority> <name><![CDATA[Multithreaded correctness - Synchronization on boxed primitive could lead to deadlock]]></name> <configKey><![CDATA[DL_SYNCHRONIZATION_ON_BOXED_PRIMITIVE]]></configKey> </rule> <rule key="ESync_EMPTY_SYNC"> <priority>MAJOR</priority> <name><![CDATA[Multithreaded correctness - Empty synchronized block]]></name> <configKey><![CDATA[ESync_EMPTY_SYNC]]></configKey> </rule> <rule key="IS_INCONSISTENT_SYNC"> <priority>MAJOR</priority> <name><![CDATA[Multithreaded correctness - Inconsistent synchronization]]></name> <configKey><![CDATA[IS_INCONSISTENT_SYNC]]></configKey> </rule> <rule key="ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD"> <priority>MAJOR</priority> <name><![CDATA[Multithreaded correctness - Synchronization on field in futile attempt to guard that field]]></name> <configKey><![CDATA[ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD]]></configKey> </rule> <rule key="ML_SYNC_ON_UPDATED_FIELD"> <priority>MAJOR</priority> <name><![CDATA[Multithreaded correctness - Method synchronizes on an updated field]]></name> <configKey><![CDATA[ML_SYNC_ON_UPDATED_FIELD]]></configKey> </rule> <rule key="MS_OOI_PKGPROTECT"> <priority>MAJOR</priority> <name><![CDATA[Malicious code vulnerability - Field should be moved out of an interface and made package protected]]></name> <configKey><![CDATA[MS_OOI_PKGPROTECT]]></configKey> </rule> <rule key="MS_FINAL_PKGPROTECT"> <priority>MAJOR</priority> <name><![CDATA[Malicious code vulnerability - Field should be both final and package protected]]></name> <configKey><![CDATA[MS_FINAL_PKGPROTECT]]></configKey> </rule> <rule key="MS_SHOULD_BE_FINAL"> <priority>MAJOR</priority> <name><![CDATA[Malicious code vulnerability - Field isn't final but should be]]></name> <configKey><![CDATA[MS_SHOULD_BE_FINAL]]></configKey> <status>DEPRECATED</status> </rule> <rule key="MS_PKGPROTECT"> <priority>MAJOR</priority> <name><![CDATA[Malicious code vulnerability - Field should be package protected]]></name> <configKey><![CDATA[MS_PKGPROTECT]]></configKey> </rule> <rule key="MS_MUTABLE_HASHTABLE"> <priority>MAJOR</priority> <name><![CDATA[Malicious code vulnerability - Field is a mutable Hashtable]]></name> <configKey><![CDATA[MS_MUTABLE_HASHTABLE]]></configKey> </rule> <rule key="MS_MUTABLE_ARRAY"> <priority>MAJOR</priority> <name><![CDATA[Malicious code vulnerability - Field is a mutable array]]></name> <configKey><![CDATA[MS_MUTABLE_ARRAY]]></configKey> </rule> <rule key="MS_CANNOT_BE_FINAL"> <priority>MAJOR</priority> <name><![CDATA[Malicious code vulnerability - Field isn't final and can't be protected from malicious code]]></name> <configKey><![CDATA[MS_CANNOT_BE_FINAL]]></configKey> </rule> <rule key="IA_AMBIGUOUS_INVOCATION_OF_INHERITED_OR_OUTER_METHOD"> <priority>MAJOR</priority> <name><![CDATA[Dodgy - Ambiguous invocation of either an inherited or outer method]]></name> <configKey><![CDATA[IA_AMBIGUOUS_INVOCATION_OF_INHERITED_OR_OUTER_METHOD]]></configKey> </rule> <rule key="NM_SAME_SIMPLE_NAME_AS_SUPERCLASS"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Class names shouldn't shadow simple name of superclass]]></name> <configKey><![CDATA[NM_SAME_SIMPLE_NAME_AS_SUPERCLASS]]></configKey> </rule> <rule key="NM_SAME_SIMPLE_NAME_AS_INTERFACE"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Class names shouldn't shadow simple name of implemented interface]]></name> <configKey><![CDATA[NM_SAME_SIMPLE_NAME_AS_INTERFACE]]></configKey> </rule> <rule key="NM_VERY_CONFUSING"> <priority>MAJOR</priority> <name><![CDATA[Correctness - Very confusing method names]]></name> <configKey><![CDATA[NM_VERY_CONFUSING]]></configKey> </rule> <rule key="NM_VERY_CONFUSING_INTENTIONAL"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Very confusing method names (but perhaps intentional)]]></name> <configKey><![CDATA[NM_VERY_CONFUSING_INTENTIONAL]]></configKey> </rule> <rule key="NM_WRONG_PACKAGE"> <priority>MAJOR</priority> <name><![CDATA[Correctness - Method doesn't override method in superclass due to wrong package for parameter]]></name> <configKey><![CDATA[NM_WRONG_PACKAGE]]></configKey> </rule> <rule key="NM_WRONG_PACKAGE_INTENTIONAL"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Method doesn't override method in superclass due to wrong package for parameter]]></name> <configKey><![CDATA[NM_WRONG_PACKAGE_INTENTIONAL]]></configKey> </rule> <rule key="NM_CONFUSING"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Confusing method names]]></name> <configKey><![CDATA[NM_CONFUSING]]></configKey> </rule> <rule key="NM_METHOD_CONSTRUCTOR_CONFUSION"> <priority>MAJOR</priority> <name><![CDATA[Correctness - Apparent method/constructor confusion]]></name> <configKey><![CDATA[NM_METHOD_CONSTRUCTOR_CONFUSION]]></configKey> </rule> <rule key="NM_CLASS_NOT_EXCEPTION"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Class is not derived from an Exception, even though it is named as such]]></name> <configKey><![CDATA[NM_CLASS_NOT_EXCEPTION]]></configKey> </rule> <rule key="RR_NOT_CHECKED"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Method ignores results of InputStream.read()]]></name> <configKey><![CDATA[RR_NOT_CHECKED]]></configKey> </rule> <rule key="SR_NOT_CHECKED"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Method ignores results of InputStream.skip()]]></name> <configKey><![CDATA[SR_NOT_CHECKED]]></configKey> </rule> <rule key="SE_READ_RESOLVE_IS_STATIC"> <priority>MAJOR</priority> <name><![CDATA[Correctness - The readResolve method must not be declared as a static method. ]]></name> <configKey><![CDATA[SE_READ_RESOLVE_IS_STATIC]]></configKey> </rule> <rule key="SE_PRIVATE_READ_RESOLVE_NOT_INHERITED"> <priority>MAJOR</priority> <name><![CDATA[Dodgy - private readResolve method not inherited by subclasses]]></name> <configKey><![CDATA[SE_PRIVATE_READ_RESOLVE_NOT_INHERITED]]></configKey> </rule> <rule key="SE_READ_RESOLVE_MUST_RETURN_OBJECT"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - The readResolve method must be declared with a return type of Object. ]]></name> <configKey><![CDATA[SE_READ_RESOLVE_MUST_RETURN_OBJECT]]></configKey> </rule> <rule key="SE_TRANSIENT_FIELD_OF_NONSERIALIZABLE_CLASS"> <priority>MAJOR</priority> <name><![CDATA[Dodgy - Transient field of class that isn't Serializable. ]]></name> <configKey><![CDATA[SE_TRANSIENT_FIELD_OF_NONSERIALIZABLE_CLASS]]></configKey> </rule> <rule key="SE_TRANSIENT_FIELD_NOT_RESTORED"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Transient field that isn't set by deserialization. ]]></name> <configKey><![CDATA[SE_TRANSIENT_FIELD_NOT_RESTORED]]></configKey> </rule> <rule key="SE_METHOD_MUST_BE_PRIVATE"> <priority>MAJOR</priority> <name><![CDATA[Correctness - Method must be private in order for serialization to work]]></name> <configKey><![CDATA[SE_METHOD_MUST_BE_PRIVATE]]></configKey> </rule> <rule key="SE_NO_SUITABLE_CONSTRUCTOR_FOR_EXTERNALIZATION"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Class is Externalizable but doesn't define a void constructor]]></name> <configKey><![CDATA[SE_NO_SUITABLE_CONSTRUCTOR_FOR_EXTERNALIZATION]]></configKey> </rule> <rule key="SE_NO_SUITABLE_CONSTRUCTOR"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Class is Serializable but its superclass doesn't define a void constructor]]></name> <configKey><![CDATA[SE_NO_SUITABLE_CONSTRUCTOR]]></configKey> </rule> <rule key="SE_NO_SERIALVERSIONID"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Class is Serializable, but doesn't define serialVersionUID]]></name> <configKey><![CDATA[SE_NO_SERIALVERSIONID]]></configKey> </rule> <rule key="SE_COMPARATOR_SHOULD_BE_SERIALIZABLE"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Comparator doesn't implement Serializable]]></name> <configKey><![CDATA[SE_COMPARATOR_SHOULD_BE_SERIALIZABLE]]></configKey> </rule> <rule key="WS_WRITEOBJECT_SYNC"> <priority>CRITICAL</priority> <name><![CDATA[Multithreaded correctness - Class's writeObject() method is synchronized but nothing else is]]></name> <configKey><![CDATA[WS_WRITEOBJECT_SYNC]]></configKey> </rule> <rule key="RS_READOBJECT_SYNC"> <priority>CRITICAL</priority> <name><![CDATA[Multithreaded correctness - Class's readObject() method is synchronized]]></name> <configKey><![CDATA[RS_READOBJECT_SYNC]]></configKey> </rule> <rule key="SE_NONSTATIC_SERIALVERSIONID"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - serialVersionUID isn't static]]></name> <configKey><![CDATA[SE_NONSTATIC_SERIALVERSIONID]]></configKey> </rule> <rule key="SE_NONFINAL_SERIALVERSIONID"> <priority>CRITICAL</priority> <name><![CDATA[Bad practice - serialVersionUID isn't final]]></name> <configKey><![CDATA[SE_NONFINAL_SERIALVERSIONID]]></configKey> </rule> <rule key="SE_NONLONG_SERIALVERSIONID"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - serialVersionUID isn't long]]></name> <configKey><![CDATA[SE_NONLONG_SERIALVERSIONID]]></configKey> </rule> <rule key="SE_BAD_FIELD_INNER_CLASS"> <priority>MINOR</priority> <name><![CDATA[Bad practice - Non-serializable class has a serializable inner class]]></name> <configKey><![CDATA[SE_BAD_FIELD_INNER_CLASS]]></configKey> </rule> <rule key="SE_INNER_CLASS"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Serializable inner class]]></name> <configKey><![CDATA[SE_INNER_CLASS]]></configKey> </rule> <rule key="SE_BAD_FIELD_STORE"> <priority>CRITICAL</priority> <name><![CDATA[Bad practice - Non-serializable value stored into instance field of a serializable class]]></name> <configKey><![CDATA[SE_BAD_FIELD_STORE]]></configKey> </rule> <rule key="SC_START_IN_CTOR"> <priority>CRITICAL</priority> <name><![CDATA[Multithreaded correctness - Constructor invokes Thread.start()]]></name> <configKey><![CDATA[SC_START_IN_CTOR]]></configKey> </rule> <rule key="SS_SHOULD_BE_STATIC"> <priority>MAJOR</priority> <name><![CDATA[Performance - Unread field: should this field be static?]]></name> <configKey><![CDATA[SS_SHOULD_BE_STATIC]]></configKey> </rule> <rule key="UUF_UNUSED_FIELD"> <priority>MAJOR</priority> <name><![CDATA[Performance - Unused field]]></name> <configKey><![CDATA[UUF_UNUSED_FIELD]]></configKey> </rule> <rule key="URF_UNREAD_FIELD"> <priority>MAJOR</priority> <name><![CDATA[Performance - Unread field]]></name> <configKey><![CDATA[URF_UNREAD_FIELD]]></configKey> </rule> <rule key="QF_QUESTIONABLE_FOR_LOOP"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - Complicated, subtle or wrong increment in for-loop ]]></name> <configKey><![CDATA[QF_QUESTIONABLE_FOR_LOOP]]></configKey> </rule> <rule key="UWF_NULL_FIELD"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Field only ever set to null]]></name> <configKey><![CDATA[UWF_NULL_FIELD]]></configKey> </rule> <rule key="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - Write to static field from instance method]]></name> <configKey><![CDATA[ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD]]></configKey> </rule> <rule key="NP_LOAD_OF_KNOWN_NULL_VALUE"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - Load of known null value]]></name> <configKey><![CDATA[NP_LOAD_OF_KNOWN_NULL_VALUE]]></configKey> </rule> <rule key="NP_DEREFERENCE_OF_READLINE_VALUE"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - Dereference of the result of readLine() without nullcheck]]></name> <configKey><![CDATA[NP_DEREFERENCE_OF_READLINE_VALUE]]></configKey> </rule> <rule key="NP_IMMEDIATE_DEREFERENCE_OF_READLINE"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - Immediate dereference of the result of readLine()]]></name> <configKey><![CDATA[NP_IMMEDIATE_DEREFERENCE_OF_READLINE]]></configKey> </rule> <rule key="SIC_INNER_SHOULD_BE_STATIC"> <priority>MAJOR</priority> <name><![CDATA[Performance - Should be a static inner class]]></name> <configKey><![CDATA[SIC_INNER_SHOULD_BE_STATIC]]></configKey> </rule> <rule key="SIC_INNER_SHOULD_BE_STATIC_ANON"> <priority>MAJOR</priority> <name><![CDATA[Performance - Could be refactored into a named static inner class]]></name> <configKey><![CDATA[SIC_INNER_SHOULD_BE_STATIC_ANON]]></configKey> </rule> <rule key="SIC_INNER_SHOULD_BE_STATIC_NEEDS_THIS"> <priority>MAJOR</priority> <name><![CDATA[Performance - Could be refactored into a static inner class]]></name> <configKey><![CDATA[SIC_INNER_SHOULD_BE_STATIC_NEEDS_THIS]]></configKey> </rule> <rule key="WA_NOT_IN_LOOP"> <priority>CRITICAL</priority> <name><![CDATA[Multithreaded correctness - Wait not in loop ]]></name> <configKey><![CDATA[WA_NOT_IN_LOOP]]></configKey> </rule> <rule key="WA_AWAIT_NOT_IN_LOOP"> <priority>CRITICAL</priority> <name><![CDATA[Multithreaded correctness - Condition.await() not in loop ]]></name> <configKey><![CDATA[WA_AWAIT_NOT_IN_LOOP]]></configKey> </rule> <rule key="NO_NOTIFY_NOT_NOTIFYALL"> <priority>CRITICAL</priority> <name><![CDATA[Multithreaded correctness - Using notify() rather than notifyAll()]]></name> <configKey><![CDATA[NO_NOTIFY_NOT_NOTIFYALL]]></configKey> </rule> <rule key="RV_CHECK_FOR_POSITIVE_INDEXOF"> <priority>MINOR</priority> <name><![CDATA[Dodgy - Method checks to see if result of String.indexOf is positive]]></name> <configKey><![CDATA[RV_CHECK_FOR_POSITIVE_INDEXOF]]></configKey> </rule> <rule key="RV_DONT_JUST_NULL_CHECK_READLINE"> <priority>MAJOR</priority> <name><![CDATA[Dodgy - Method discards result of readLine after checking if it is nonnull]]></name> <configKey><![CDATA[RV_DONT_JUST_NULL_CHECK_READLINE]]></configKey> </rule> <rule key="RV_RETURN_VALUE_IGNORED"> <priority>MINOR</priority> <name><![CDATA[Correctness - Method ignores return value]]></name> <configKey><![CDATA[RV_RETURN_VALUE_IGNORED]]></configKey> </rule> <rule key="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Method ignores exceptional return value]]></name> <configKey><![CDATA[RV_RETURN_VALUE_IGNORED_BAD_PRACTICE]]></configKey> </rule> <rule key="RV_EXCEPTION_NOT_THROWN"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Exception created and dropped rather than thrown]]></name> <configKey><![CDATA[RV_EXCEPTION_NOT_THROWN]]></configKey> </rule> <rule key="RV_RETURN_VALUE_IGNORED2"> <priority>MAJOR</priority> <name><![CDATA[Correctness - Method ignores return value]]></name> <configKey><![CDATA[RV_RETURN_VALUE_IGNORED2]]></configKey> </rule> <rule key="NP_ALWAYS_NULL"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Null pointer dereference]]></name> <configKey><![CDATA[NP_ALWAYS_NULL]]></configKey> </rule> <rule key="NP_STORE_INTO_NONNULL_FIELD"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Store of null value into field annotated NonNull]]></name> <configKey><![CDATA[NP_STORE_INTO_NONNULL_FIELD]]></configKey> </rule> <rule key="NP_ALWAYS_NULL_EXCEPTION"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Null pointer dereference in method on exception path]]></name> <configKey><![CDATA[NP_ALWAYS_NULL_EXCEPTION]]></configKey> </rule> <rule key="NP_PARAMETER_MUST_BE_NONNULL_BUT_MARKED_AS_NULLABLE"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - Parameter must be nonnull but is marked as nullable]]></name> <configKey><![CDATA[NP_PARAMETER_MUST_BE_NONNULL_BUT_MARKED_AS_NULLABLE]]></configKey> </rule> <rule key="NP_NULL_ON_SOME_PATH"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Possible null pointer dereference]]></name> <configKey><![CDATA[NP_NULL_ON_SOME_PATH]]></configKey> </rule> <rule key="NP_NULL_ON_SOME_PATH_MIGHT_BE_INFEASIBLE"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - Possible null pointer dereference on path that might be infeasible]]></name> <configKey><![CDATA[NP_NULL_ON_SOME_PATH_MIGHT_BE_INFEASIBLE]]></configKey> </rule> <rule key="NP_NULL_ON_SOME_PATH_EXCEPTION"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Possible null pointer dereference in method on exception path]]></name> <configKey><![CDATA[NP_NULL_ON_SOME_PATH_EXCEPTION]]></configKey> </rule> <rule key="NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - Possible null pointer dereference due to return value of called method]]></name> <configKey><![CDATA[NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE]]></configKey> </rule> <rule key="NP_NULL_PARAM_DEREF_NONVIRTUAL"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Non-virtual method call passes null for nonnull parameter]]></name> <configKey><![CDATA[NP_NULL_PARAM_DEREF_NONVIRTUAL]]></configKey> </rule> <rule key="NP_NULL_PARAM_DEREF_ALL_TARGETS_DANGEROUS"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Method call passes null for nonnull parameter (ALL_TARGETS_DANGEROUS)]]></name> <configKey><![CDATA[NP_NULL_PARAM_DEREF_ALL_TARGETS_DANGEROUS]]></configKey> </rule> <rule key="NP_NULL_PARAM_DEREF"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Method call passes null for nonnull parameter]]></name> <configKey><![CDATA[NP_NULL_PARAM_DEREF]]></configKey> </rule> <rule key="NP_NONNULL_PARAM_VIOLATION"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Method call passes null to a nonnull parameter ]]></name> <configKey><![CDATA[NP_NONNULL_PARAM_VIOLATION]]></configKey> </rule> <rule key="NP_NONNULL_RETURN_VIOLATION"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Method may return null, but is declared @NonNull]]></name> <configKey><![CDATA[NP_NONNULL_RETURN_VIOLATION]]></configKey> </rule> <rule key="NP_CLONE_COULD_RETURN_NULL"> <priority>CRITICAL</priority> <name><![CDATA[Bad practice - Clone method may return null]]></name> <configKey><![CDATA[NP_CLONE_COULD_RETURN_NULL]]></configKey> </rule> <rule key="NP_TOSTRING_COULD_RETURN_NULL"> <priority>CRITICAL</priority> <name><![CDATA[Bad practice - toString method may return null]]></name> <configKey><![CDATA[NP_TOSTRING_COULD_RETURN_NULL]]></configKey> </rule> <rule key="NP_GUARANTEED_DEREF"> <priority>BLOCKER</priority> <name><![CDATA[Correctness - Null value is guaranteed to be dereferenced]]></name> <configKey><![CDATA[NP_GUARANTEED_DEREF]]></configKey> </rule> <rule key="NP_GUARANTEED_DEREF_ON_EXCEPTION_PATH"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Value is null and guaranteed to be dereferenced on exception path]]></name> <configKey><![CDATA[NP_GUARANTEED_DEREF_ON_EXCEPTION_PATH]]></configKey> </rule> <rule key="SI_INSTANCE_BEFORE_FINALS_ASSIGNED"> <priority>CRITICAL</priority> <name><![CDATA[Bad practice - Static initializer creates instance before all static final fields assigned]]></name> <configKey><![CDATA[SI_INSTANCE_BEFORE_FINALS_ASSIGNED]]></configKey> </rule> <rule key="OS_OPEN_STREAM"> <priority>CRITICAL</priority> <name><![CDATA[Bad practice - Method may fail to close stream]]></name> <configKey><![CDATA[OS_OPEN_STREAM]]></configKey> </rule> <rule key="OS_OPEN_STREAM_EXCEPTION_PATH"> <priority>CRITICAL</priority> <name><![CDATA[Bad practice - Method may fail to close stream on exception]]></name> <configKey><![CDATA[OS_OPEN_STREAM_EXCEPTION_PATH]]></configKey> </rule> <rule key="PZLA_PREFER_ZERO_LENGTH_ARRAYS"> <priority>MAJOR</priority> <name><![CDATA[Dodgy - Consider returning a zero length array rather than null]]></name> <configKey><![CDATA[PZLA_PREFER_ZERO_LENGTH_ARRAYS]]></configKey> <status>DEPRECATED</status> </rule> <rule key="UCF_USELESS_CONTROL_FLOW"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - Useless control flow]]></name> <configKey><![CDATA[UCF_USELESS_CONTROL_FLOW]]></configKey> </rule> <rule key="UCF_USELESS_CONTROL_FLOW_NEXT_LINE"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Useless control flow to next line]]></name> <configKey><![CDATA[UCF_USELESS_CONTROL_FLOW_NEXT_LINE]]></configKey> </rule> <rule key="RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Nullcheck of value previously dereferenced]]></name> <configKey><![CDATA[RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE]]></configKey> </rule> <rule key="RCN_REDUNDANT_NULLCHECK_OF_NULL_VALUE"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - Redundant nullcheck of value known to be null]]></name> <configKey><![CDATA[RCN_REDUNDANT_NULLCHECK_OF_NULL_VALUE]]></configKey> </rule> <rule key="RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - Redundant nullcheck of value known to be non-null]]></name> <configKey><![CDATA[RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE]]></configKey> </rule> <rule key="RCN_REDUNDANT_COMPARISON_TWO_NULL_VALUES"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - Redundant comparison of two null values]]></name> <configKey><![CDATA[RCN_REDUNDANT_COMPARISON_TWO_NULL_VALUES]]></configKey> </rule> <rule key="RCN_REDUNDANT_COMPARISON_OF_NULL_AND_NONNULL_VALUE"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - Redundant comparison of non-null value to null]]></name> <configKey><![CDATA[RCN_REDUNDANT_COMPARISON_OF_NULL_AND_NONNULL_VALUE]]></configKey> </rule> <rule key="UL_UNRELEASED_LOCK"> <priority>CRITICAL</priority> <name><![CDATA[Multithreaded correctness - Method does not release lock on all paths]]></name> <configKey><![CDATA[UL_UNRELEASED_LOCK]]></configKey> </rule> <rule key="UL_UNRELEASED_LOCK_EXCEPTION_PATH"> <priority>CRITICAL</priority> <name><![CDATA[Multithreaded correctness - Method does not release lock on all exception paths]]></name> <configKey><![CDATA[UL_UNRELEASED_LOCK_EXCEPTION_PATH]]></configKey> </rule> <rule key="RC_REF_COMPARISON"> <priority>CRITICAL</priority> <name><![CDATA[Bad practice - Suspicious reference comparison]]></name> <configKey><![CDATA[RC_REF_COMPARISON]]></configKey> </rule> <rule key="EC_UNRELATED_TYPES_USING_POINTER_EQUALITY"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Using pointer equality to compare different types]]></name> <configKey><![CDATA[EC_UNRELATED_TYPES_USING_POINTER_EQUALITY]]></configKey> </rule> <rule key="EC_UNRELATED_TYPES"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Call to equals() comparing different types]]></name> <configKey><![CDATA[EC_UNRELATED_TYPES]]></configKey> </rule> <rule key="EC_UNRELATED_INTERFACES"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Call to equals() comparing different interface types]]></name> <configKey><![CDATA[EC_UNRELATED_INTERFACES]]></configKey> </rule> <rule key="EC_UNRELATED_CLASS_AND_INTERFACE"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Call to equals() comparing unrelated class and interface]]></name> <configKey><![CDATA[EC_UNRELATED_CLASS_AND_INTERFACE]]></configKey> </rule> <rule key="EC_NULL_ARG"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Call to equals() with null argument]]></name> <configKey><![CDATA[EC_NULL_ARG]]></configKey> </rule> <rule key="MWN_MISMATCHED_WAIT"> <priority>CRITICAL</priority> <name><![CDATA[Multithreaded correctness - Mismatched wait()]]></name> <configKey><![CDATA[MWN_MISMATCHED_WAIT]]></configKey> </rule> <rule key="MWN_MISMATCHED_NOTIFY"> <priority>CRITICAL</priority> <name><![CDATA[Multithreaded correctness - Mismatched notify()]]></name> <configKey><![CDATA[MWN_MISMATCHED_NOTIFY]]></configKey> </rule> <rule key="SA_LOCAL_SELF_ASSIGNMENT"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - Self assignment of local variable]]></name> <configKey><![CDATA[SA_LOCAL_SELF_ASSIGNMENT]]></configKey> </rule> <rule key="SA_FIELD_SELF_ASSIGNMENT"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Self assignment of field]]></name> <configKey><![CDATA[SA_FIELD_SELF_ASSIGNMENT]]></configKey> </rule> <rule key="SA_FIELD_DOUBLE_ASSIGNMENT"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Double assignment of field]]></name> <configKey><![CDATA[SA_FIELD_DOUBLE_ASSIGNMENT]]></configKey> </rule> <rule key="SA_LOCAL_DOUBLE_ASSIGNMENT"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - Double assignment of local variable ]]></name> <configKey><![CDATA[SA_LOCAL_DOUBLE_ASSIGNMENT]]></configKey> </rule> <rule key="SA_FIELD_SELF_COMPUTATION"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Nonsensical self computation involving a field (e.g., x & x)]]></name> <configKey><![CDATA[SA_FIELD_SELF_COMPUTATION]]></configKey> </rule> <rule key="SA_LOCAL_SELF_COMPUTATION"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Nonsensical self computation involving a variable (e.g., x & x)]]></name> <configKey><![CDATA[SA_LOCAL_SELF_COMPUTATION]]></configKey> </rule> <rule key="SA_FIELD_SELF_COMPARISON"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Self comparison of field with itself]]></name> <configKey><![CDATA[SA_FIELD_SELF_COMPARISON]]></configKey> </rule> <rule key="SA_LOCAL_SELF_COMPARISON"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Self comparison of value with itself]]></name> <configKey><![CDATA[SA_LOCAL_SELF_COMPARISON]]></configKey> </rule> <rule key="DMI_LONG_BITS_TO_DOUBLE_INVOKED_ON_INT"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Double.longBitsToDouble invoked on an int]]></name> <configKey><![CDATA[DMI_LONG_BITS_TO_DOUBLE_INVOKED_ON_INT]]></configKey> </rule> <rule key="DMI_RANDOM_USED_ONLY_ONCE"> <priority>CRITICAL</priority> <name><![CDATA[Bad practice - Random object created and used only once]]></name> <configKey><![CDATA[DMI_RANDOM_USED_ONLY_ONCE]]></configKey> </rule> <rule key="RV_ABSOLUTE_VALUE_OF_RANDOM_INT"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Bad attempt to compute absolute value of signed 32-bit random integer]]></name> <configKey><![CDATA[RV_ABSOLUTE_VALUE_OF_RANDOM_INT]]></configKey> </rule> <rule key="RV_ABSOLUTE_VALUE_OF_HASHCODE"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Bad attempt to compute absolute value of signed 32-bit hashcode ]]></name> <configKey><![CDATA[RV_ABSOLUTE_VALUE_OF_HASHCODE]]></configKey> </rule> <rule key="RV_REM_OF_RANDOM_INT"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - Remainder of 32-bit signed random integer]]></name> <configKey><![CDATA[RV_REM_OF_RANDOM_INT]]></configKey> </rule> <rule key="RV_REM_OF_HASHCODE"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - Remainder of hashCode could be negative]]></name> <configKey><![CDATA[RV_REM_OF_HASHCODE]]></configKey> </rule> <rule key="INT_BAD_COMPARISON_WITH_NONNEGATIVE_VALUE"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Bad comparison of nonnegative value with negative constant]]></name> <configKey><![CDATA[INT_BAD_COMPARISON_WITH_NONNEGATIVE_VALUE]]></configKey> </rule> <rule key="INT_BAD_COMPARISON_WITH_SIGNED_BYTE"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Bad comparison of signed byte]]></name> <configKey><![CDATA[INT_BAD_COMPARISON_WITH_SIGNED_BYTE]]></configKey> </rule> <rule key="INT_VACUOUS_BIT_OPERATION"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - Vacuous bit mask operation on integer value]]></name> <configKey><![CDATA[INT_VACUOUS_BIT_OPERATION]]></configKey> </rule> <rule key="INT_VACUOUS_COMPARISON"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - Vacuous comparison of integer value]]></name> <configKey><![CDATA[INT_VACUOUS_COMPARISON]]></configKey> </rule> <rule key="INT_BAD_REM_BY_1"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Integer remainder modulo 1]]></name> <configKey><![CDATA[INT_BAD_REM_BY_1]]></configKey> </rule> <rule key="BIT_IOR_OF_SIGNED_BYTE"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Bitwise OR of signed byte value]]></name> <configKey><![CDATA[BIT_IOR_OF_SIGNED_BYTE]]></configKey> </rule> <rule key="BIT_ADD_OF_SIGNED_BYTE"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Bitwise add of signed byte value]]></name> <configKey><![CDATA[BIT_ADD_OF_SIGNED_BYTE]]></configKey> </rule> <rule key="BIT_AND"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Incompatible bit masks (BIT_AND)]]></name> <configKey><![CDATA[BIT_AND]]></configKey> </rule> <rule key="BIT_SIGNED_CHECK"> <priority>CRITICAL</priority> <name><![CDATA[Bad practice - Check for sign of bitwise operation]]></name> <configKey><![CDATA[BIT_SIGNED_CHECK]]></configKey> </rule> <rule key="BIT_SIGNED_CHECK_HIGH_BIT"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Check for sign of bitwise operation]]></name> <configKey><![CDATA[BIT_SIGNED_CHECK_HIGH_BIT]]></configKey> </rule> <rule key="BIT_AND_ZZ"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Check to see if ((...) & 0) == 0]]></name> <configKey><![CDATA[BIT_AND_ZZ]]></configKey> </rule> <rule key="BIT_IOR"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Incompatible bit masks (BIT_IOR)]]></name> <configKey><![CDATA[BIT_IOR]]></configKey> </rule> <rule key="LI_LAZY_INIT_STATIC"> <priority>CRITICAL</priority> <name><![CDATA[Multithreaded correctness - Incorrect lazy initialization of static field]]></name> <configKey><![CDATA[LI_LAZY_INIT_STATIC]]></configKey> </rule> <rule key="LI_LAZY_INIT_UPDATE_STATIC"> <priority>CRITICAL</priority> <name><![CDATA[Multithreaded correctness - Incorrect lazy initialization and update of static field]]></name> <configKey><![CDATA[LI_LAZY_INIT_UPDATE_STATIC]]></configKey> </rule> <rule key="JLM_JSR166_LOCK_MONITORENTER"> <priority>CRITICAL</priority> <name><![CDATA[Multithreaded correctness - Synchronization performed on java.util.concurrent Lock]]></name> <configKey><![CDATA[JLM_JSR166_LOCK_MONITORENTER]]></configKey> </rule> <rule key="UPM_UNCALLED_PRIVATE_METHOD"> <priority>CRITICAL</priority> <name><![CDATA[Performance - Private method is never called]]></name> <configKey><![CDATA[UPM_UNCALLED_PRIVATE_METHOD]]></configKey> <status>DEPRECATED</status> </rule> <rule key="UMAC_UNCALLABLE_METHOD_OF_ANONYMOUS_CLASS"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Uncallable method defined in anonymous class]]></name> <configKey><![CDATA[UMAC_UNCALLABLE_METHOD_OF_ANONYMOUS_CLASS]]></configKey> </rule> <rule key="ODR_OPEN_DATABASE_RESOURCE"> <priority>CRITICAL</priority> <name><![CDATA[Bad practice - Method may fail to close database resource]]></name> <configKey><![CDATA[ODR_OPEN_DATABASE_RESOURCE]]></configKey> </rule> <rule key="ODR_OPEN_DATABASE_RESOURCE_EXCEPTION_PATH"> <priority>CRITICAL</priority> <name><![CDATA[Bad practice - Method may fail to close database resource on exception]]></name> <configKey><![CDATA[ODR_OPEN_DATABASE_RESOURCE_EXCEPTION_PATH]]></configKey> </rule> <rule key="SBSC_USE_STRINGBUFFER_CONCATENATION"> <priority>CRITICAL</priority> <name><![CDATA[Performance - Method concatenates strings using + in a loop]]></name> <configKey><![CDATA[SBSC_USE_STRINGBUFFER_CONCATENATION]]></configKey> <status>DEPRECATED</status> </rule> <rule key="ITA_INEFFICIENT_TO_ARRAY"> <priority>CRITICAL</priority> <name><![CDATA[Performance - Method uses toArray() with zero-length array argument]]></name> <configKey><![CDATA[ITA_INEFFICIENT_TO_ARRAY]]></configKey> </rule> <rule key="IJU_ASSERT_METHOD_INVOKED_FROM_RUN_METHOD"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - JUnit assertion in run method will not be noticed by JUnit]]></name> <configKey><![CDATA[IJU_ASSERT_METHOD_INVOKED_FROM_RUN_METHOD]]></configKey> </rule> <rule key="IJU_SETUP_NO_SUPER"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - TestCase defines setUp that doesn't call super.setUp()]]></name> <configKey><![CDATA[IJU_SETUP_NO_SUPER]]></configKey> </rule> <rule key="IJU_TEARDOWN_NO_SUPER"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - TestCase defines tearDown that doesn't call super.tearDown()]]></name> <configKey><![CDATA[IJU_TEARDOWN_NO_SUPER]]></configKey> </rule> <rule key="IJU_SUITE_NOT_STATIC"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - TestCase implements a non-static suite method ]]></name> <configKey><![CDATA[IJU_SUITE_NOT_STATIC]]></configKey> </rule> <rule key="IJU_BAD_SUITE_METHOD"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - TestCase declares a bad suite method ]]></name> <configKey><![CDATA[IJU_BAD_SUITE_METHOD]]></configKey> </rule> <rule key="IJU_NO_TESTS"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - TestCase has no tests]]></name> <configKey><![CDATA[IJU_NO_TESTS]]></configKey> </rule> <rule key="BOA_BADLY_OVERRIDDEN_ADAPTER"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Class overrides a method implemented in super class Adapter wrongly]]></name> <configKey><![CDATA[BOA_BADLY_OVERRIDDEN_ADAPTER]]></configKey> </rule> <rule key="SQL_BAD_RESULTSET_ACCESS"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Method attempts to access a result set field with index 0]]></name> <configKey><![CDATA[SQL_BAD_RESULTSET_ACCESS]]></configKey> </rule> <rule key="SQL_BAD_PREPARED_STATEMENT_ACCESS"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Method attempts to access a prepared statement parameter with index 0]]></name> <configKey><![CDATA[SQL_BAD_PREPARED_STATEMENT_ACCESS]]></configKey> </rule> <rule key="SIO_SUPERFLUOUS_INSTANCEOF"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Unnecessary type check done using instanceof operator]]></name> <configKey><![CDATA[SIO_SUPERFLUOUS_INSTANCEOF]]></configKey> </rule> <rule key="EC_ARRAY_AND_NONARRAY"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - equals() used to compare array and nonarray]]></name> <configKey><![CDATA[EC_ARRAY_AND_NONARRAY]]></configKey> </rule> <rule key="EC_BAD_ARRAY_COMPARE"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Invocation of equals() on an array, which is equivalent to ==]]></name> <configKey><![CDATA[EC_BAD_ARRAY_COMPARE]]></configKey> <status>DEPRECATED</status> </rule> <rule key="STI_INTERRUPTED_ON_CURRENTTHREAD"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Unneeded use of currentThread() call, to call interrupted() ]]></name> <configKey><![CDATA[STI_INTERRUPTED_ON_CURRENTTHREAD]]></configKey> </rule> <rule key="STI_INTERRUPTED_ON_UNKNOWNTHREAD"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Static Thread.interrupted() method invoked on thread instance]]></name> <configKey><![CDATA[STI_INTERRUPTED_ON_UNKNOWNTHREAD]]></configKey> </rule> <rule key="IP_PARAMETER_IS_DEAD_BUT_OVERWRITTEN"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - A parameter is dead upon entry to a method but overwritten]]></name> <configKey><![CDATA[IP_PARAMETER_IS_DEAD_BUT_OVERWRITTEN]]></configKey> </rule> <rule key="DLS_DEAD_LOCAL_STORE"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - Dead store to local variable]]></name> <configKey><![CDATA[DLS_DEAD_LOCAL_STORE]]></configKey> </rule> <rule key="DLS_DEAD_LOCAL_STORE_IN_RETURN"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Useless assignment in return statement]]></name> <configKey><![CDATA[DLS_DEAD_LOCAL_STORE_IN_RETURN]]></configKey> </rule> <rule key="DLS_DEAD_STORE_OF_CLASS_LITERAL"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Dead store of class literal]]></name> <configKey><![CDATA[DLS_DEAD_STORE_OF_CLASS_LITERAL]]></configKey> </rule> <rule key="DLS_DEAD_LOCAL_STORE_OF_NULL"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - Dead store of null to local variable]]></name> <configKey><![CDATA[DLS_DEAD_LOCAL_STORE_OF_NULL]]></configKey> </rule> <rule key="MF_METHOD_MASKS_FIELD"> <priority>MAJOR</priority> <name><![CDATA[Correctness - Method defines a variable that obscures a field]]></name> <configKey><![CDATA[MF_METHOD_MASKS_FIELD]]></configKey> </rule> <rule key="MF_CLASS_MASKS_FIELD"> <priority>MAJOR</priority> <name><![CDATA[Correctness - Class defines field that masks a superclass field]]></name> <configKey><![CDATA[MF_CLASS_MASKS_FIELD]]></configKey> </rule> <rule key="WMI_WRONG_MAP_ITERATOR"> <priority>CRITICAL</priority> <name><![CDATA[Performance - Inefficient use of keySet iterator instead of entrySet iterator]]></name> <configKey><![CDATA[WMI_WRONG_MAP_ITERATOR]]></configKey> </rule> <rule key="ISC_INSTANTIATE_STATIC_CLASS"> <priority>MAJOR</priority> <name><![CDATA[Bad practice - Needless instantiation of class that only supplies static methods]]></name> <configKey><![CDATA[ISC_INSTANTIATE_STATIC_CLASS]]></configKey> </rule> <rule key="REC_CATCH_EXCEPTION"> <priority>MAJOR</priority> <name><![CDATA[Dodgy - Exception is caught when Exception is not thrown]]></name> <configKey><![CDATA[REC_CATCH_EXCEPTION]]></configKey> </rule> <rule key="FE_TEST_IF_EQUAL_TO_NOT_A_NUMBER"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Doomed test for equality to NaN]]></name> <configKey><![CDATA[FE_TEST_IF_EQUAL_TO_NOT_A_NUMBER]]></configKey> </rule> <rule key="FE_FLOATING_POINT_EQUALITY"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - Test for floating point equality]]></name> <configKey><![CDATA[FE_FLOATING_POINT_EQUALITY]]></configKey> </rule> <rule key="UM_UNNECESSARY_MATH"> <priority>CRITICAL</priority> <name><![CDATA[Performance - Method calls static Math class method on a constant value]]></name> <configKey><![CDATA[UM_UNNECESSARY_MATH]]></configKey> </rule> <rule key="RI_REDUNDANT_INTERFACES"> <priority>MAJOR</priority> <name><![CDATA[Dodgy - Class implements same interface as superclass]]></name> <configKey><![CDATA[RI_REDUNDANT_INTERFACES]]></configKey> </rule> <rule key="MTIA_SUSPECT_STRUTS_INSTANCE_FIELD"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - Class extends Struts Action class and uses instance variables]]></name> <configKey><![CDATA[MTIA_SUSPECT_STRUTS_INSTANCE_FIELD]]></configKey> </rule> <rule key="MTIA_SUSPECT_SERVLET_INSTANCE_FIELD"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - Class extends Servlet class and uses instance variables]]></name> <configKey><![CDATA[MTIA_SUSPECT_SERVLET_INSTANCE_FIELD]]></configKey> </rule> <rule key="PS_PUBLIC_SEMAPHORES"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - Class exposes synchronization and semaphores in its public interface]]></name> <configKey><![CDATA[PS_PUBLIC_SEMAPHORES]]></configKey> </rule> <rule key="ICAST_INTEGER_MULTIPLY_CAST_TO_LONG"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - Result of integer multiplication cast to long]]></name> <configKey><![CDATA[ICAST_INTEGER_MULTIPLY_CAST_TO_LONG]]></configKey> </rule> <rule key="ICAST_INT_CAST_TO_FLOAT_PASSED_TO_ROUND"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - int value cast to float and then passed to Math.round]]></name> <configKey><![CDATA[ICAST_INT_CAST_TO_FLOAT_PASSED_TO_ROUND]]></configKey> </rule> <rule key="ICAST_INT_CAST_TO_DOUBLE_PASSED_TO_CEIL"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - int value cast to double and then passed to Math.ceil]]></name> <configKey><![CDATA[ICAST_INT_CAST_TO_DOUBLE_PASSED_TO_CEIL]]></configKey> </rule> <rule key="ICAST_IDIV_CAST_TO_DOUBLE"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - int division result cast to double or float]]></name> <configKey><![CDATA[ICAST_IDIV_CAST_TO_DOUBLE]]></configKey> </rule> <rule key="J2EE_STORE_OF_NON_SERIALIZABLE_OBJECT_INTO_SESSION"> <priority>CRITICAL</priority> <name><![CDATA[Bad practice - Store of non serializable object into HttpSession]]></name> <configKey><![CDATA[J2EE_STORE_OF_NON_SERIALIZABLE_OBJECT_INTO_SESSION]]></configKey> </rule> <rule key="DMI_NONSERIALIZABLE_OBJECT_WRITTEN"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - Non serializable object written to ObjectOutput]]></name> <configKey><![CDATA[DMI_NONSERIALIZABLE_OBJECT_WRITTEN]]></configKey> </rule> <rule key="VA_FORMAT_STRING_NO_PREVIOUS_ARGUMENT"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - No previous argument for format string]]></name> <configKey><![CDATA[VA_FORMAT_STRING_NO_PREVIOUS_ARGUMENT]]></configKey> </rule> <rule key="VA_FORMAT_STRING_BAD_CONVERSION"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - The type of a supplied argument doesn't match format specifier]]></name> <configKey><![CDATA[VA_FORMAT_STRING_BAD_CONVERSION]]></configKey> </rule> <rule key="VA_FORMAT_STRING_BAD_CONVERSION_TO_BOOLEAN"> <priority>MAJOR</priority> <name><![CDATA[Dodgy - Non-Boolean argument formatted using %b format specifier]]></name> <configKey><![CDATA[VA_FORMAT_STRING_BAD_CONVERSION_TO_BOOLEAN]]></configKey> </rule> <rule key="VA_FORMAT_STRING_BAD_CONVERSION_FROM_ARRAY"> <priority>MAJOR</priority> <name><![CDATA[Correctness - Array formatted in useless way using format string]]></name> <configKey><![CDATA[VA_FORMAT_STRING_BAD_CONVERSION_FROM_ARRAY]]></configKey> </rule> <rule key="VA_FORMAT_STRING_ARG_MISMATCH"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Number of format-string arguments does not correspond to number of placeholders]]></name> <configKey><![CDATA[VA_FORMAT_STRING_ARG_MISMATCH]]></configKey> </rule> <rule key="VA_FORMAT_STRING_EXTRA_ARGUMENTS_PASSED"> <priority>MAJOR</priority> <name><![CDATA[Correctness - More arguments are passed that are actually used in the format string]]></name> <configKey><![CDATA[VA_FORMAT_STRING_EXTRA_ARGUMENTS_PASSED]]></configKey> </rule> <rule key="VA_FORMAT_STRING_ILLEGAL"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Illegal format string]]></name> <configKey><![CDATA[VA_FORMAT_STRING_ILLEGAL]]></configKey> </rule> <rule key="VA_FORMAT_STRING_MISSING_ARGUMENT"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Format string references missing argument]]></name> <configKey><![CDATA[VA_FORMAT_STRING_MISSING_ARGUMENT]]></configKey> </rule> <rule key="VA_FORMAT_STRING_BAD_ARGUMENT"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Format string placeholder incompatible with passed argument]]></name> <configKey><![CDATA[VA_FORMAT_STRING_BAD_ARGUMENT]]></configKey> </rule> <rule key="VA_PRIMITIVE_ARRAY_PASSED_TO_OBJECT_VARARG"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Primitive array passed to function expecting a variable number of object arguments]]></name> <configKey><![CDATA[VA_PRIMITIVE_ARRAY_PASSED_TO_OBJECT_VARARG]]></configKey> </rule> <rule key="BC_EQUALS_METHOD_SHOULD_WORK_FOR_ALL_OBJECTS"> <priority>CRITICAL</priority> <name><![CDATA[Bad practice - Equals method should not assume anything about the type of its argument]]></name> <configKey><![CDATA[BC_EQUALS_METHOD_SHOULD_WORK_FOR_ALL_OBJECTS]]></configKey> </rule> <rule key="BC_BAD_CAST_TO_ABSTRACT_COLLECTION"> <priority>MAJOR</priority> <name><![CDATA[Dodgy - Questionable cast to abstract collection ]]></name> <configKey><![CDATA[BC_BAD_CAST_TO_ABSTRACT_COLLECTION]]></configKey> </rule> <rule key="BC_IMPOSSIBLE_CAST"> <priority>BLOCKER</priority> <name><![CDATA[Correctness - Impossible cast]]></name> <configKey><![CDATA[BC_IMPOSSIBLE_CAST]]></configKey> </rule> <rule key="NP_NULL_INSTANCEOF"> <priority>BLOCKER</priority> <name><![CDATA[Correctness - A known null value is checked to see if it is an instance of a type]]></name> <configKey><![CDATA[NP_NULL_INSTANCEOF]]></configKey> </rule> <rule key="BC_IMPOSSIBLE_INSTANCEOF"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - instanceof will always return false]]></name> <configKey><![CDATA[BC_IMPOSSIBLE_INSTANCEOF]]></configKey> </rule> <rule key="BC_VACUOUS_INSTANCEOF"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - instanceof will always return true]]></name> <configKey><![CDATA[BC_VACUOUS_INSTANCEOF]]></configKey> </rule> <rule key="BC_UNCONFIRMED_CAST"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - Unchecked/unconfirmed cast]]></name> <configKey><![CDATA[BC_UNCONFIRMED_CAST]]></configKey> </rule> <rule key="BC_BAD_CAST_TO_CONCRETE_COLLECTION"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - Questionable cast to concrete collection]]></name> <configKey><![CDATA[BC_BAD_CAST_TO_CONCRETE_COLLECTION]]></configKey> </rule> <rule key="RE_POSSIBLE_UNINTENDED_PATTERN"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - "." used for regular expression]]></name> <configKey><![CDATA[RE_POSSIBLE_UNINTENDED_PATTERN]]></configKey> </rule> <rule key="RE_BAD_SYNTAX_FOR_REGULAR_EXPRESSION"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Invalid syntax for regular expression]]></name> <configKey><![CDATA[RE_BAD_SYNTAX_FOR_REGULAR_EXPRESSION]]></configKey> </rule> <rule key="RE_CANT_USE_FILE_SEPARATOR_AS_REGULAR_EXPRESSION"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - File.separator used for regular expression]]></name> <configKey><![CDATA[RE_CANT_USE_FILE_SEPARATOR_AS_REGULAR_EXPRESSION]]></configKey> </rule> <rule key="DLS_OVERWRITTEN_INCREMENT"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Overwritten increment]]></name> <configKey><![CDATA[DLS_OVERWRITTEN_INCREMENT]]></configKey> </rule> <rule key="ICAST_QUESTIONABLE_UNSIGNED_RIGHT_SHIFT"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - Unsigned right shift cast to short/byte]]></name> <configKey><![CDATA[ICAST_QUESTIONABLE_UNSIGNED_RIGHT_SHIFT]]></configKey> </rule> <rule key="ICAST_BAD_SHIFT_AMOUNT"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Integer shift by an amount not in the range 0..31]]></name> <configKey><![CDATA[ICAST_BAD_SHIFT_AMOUNT]]></configKey> </rule> <rule key="IM_MULTIPLYING_RESULT_OF_IREM"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Integer multiply of result of integer remainder]]></name> <configKey><![CDATA[IM_MULTIPLYING_RESULT_OF_IREM]]></configKey> </rule> <rule key="DMI_INVOKING_HASHCODE_ON_ARRAY"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Invocation of hashCode on an array]]></name> <configKey><![CDATA[DMI_INVOKING_HASHCODE_ON_ARRAY]]></configKey> </rule> <rule key="DMI_INVOKING_TOSTRING_ON_ARRAY"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Invocation of toString on an array]]></name> <configKey><![CDATA[DMI_INVOKING_TOSTRING_ON_ARRAY]]></configKey> </rule> <rule key="DMI_INVOKING_TOSTRING_ON_ANONYMOUS_ARRAY"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Invocation of toString on an anonymous array]]></name> <configKey><![CDATA[DMI_INVOKING_TOSTRING_ON_ANONYMOUS_ARRAY]]></configKey> </rule> <rule key="IM_AVERAGE_COMPUTATION_COULD_OVERFLOW"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - Computation of average could overflow]]></name> <configKey><![CDATA[IM_AVERAGE_COMPUTATION_COULD_OVERFLOW]]></configKey> </rule> <rule key="IM_BAD_CHECK_FOR_ODD"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - Check for oddness that won't work for negative numbers ]]></name> <configKey><![CDATA[IM_BAD_CHECK_FOR_ODD]]></configKey> </rule> <rule key="DMI_HARDCODED_ABSOLUTE_FILENAME"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - Code contains a hard coded reference to an absolute pathname]]></name> <configKey><![CDATA[DMI_HARDCODED_ABSOLUTE_FILENAME]]></configKey> </rule> <rule key="DMI_BAD_MONTH"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Bad constant value for month]]></name> <configKey><![CDATA[DMI_BAD_MONTH]]></configKey> </rule> <rule key="DMI_USELESS_SUBSTRING"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - Invocation of substring(0), which returns the original value]]></name> <configKey><![CDATA[DMI_USELESS_SUBSTRING]]></configKey> </rule> <rule key="DMI_CALLING_NEXT_FROM_HASNEXT"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - hasNext method invokes next]]></name> <configKey><![CDATA[DMI_CALLING_NEXT_FROM_HASNEXT]]></configKey> </rule> <rule key="SWL_SLEEP_WITH_LOCK_HELD"> <priority>CRITICAL</priority> <name><![CDATA[Multithreaded correctness - Method calls Thread.sleep() with a lock held]]></name> <configKey><![CDATA[SWL_SLEEP_WITH_LOCK_HELD]]></configKey> </rule> <rule key="DB_DUPLICATE_BRANCHES"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - Method uses the same code for two branches]]></name> <configKey><![CDATA[DB_DUPLICATE_BRANCHES]]></configKey> </rule> <rule key="DB_DUPLICATE_SWITCH_CLAUSES"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - Method uses the same code for two switch clauses]]></name> <configKey><![CDATA[DB_DUPLICATE_SWITCH_CLAUSES]]></configKey> </rule> <rule key="XFB_XML_FACTORY_BYPASS"> <priority>CRITICAL</priority> <name><![CDATA[Dodgy - Method directly allocates a specific implementation of xml interfaces]]></name> <configKey><![CDATA[XFB_XML_FACTORY_BYPASS]]></configKey> </rule> <rule key="CI_CONFUSED_INHERITANCE"> <priority>MINOR</priority> <name><![CDATA[Dodgy - Class is final but declares protected field]]></name> <configKey><![CDATA[CI_CONFUSED_INHERITANCE]]></configKey> </rule> <rule key="QBA_QUESTIONABLE_BOOLEAN_ASSIGNMENT"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Method assigns boolean literal in boolean expression]]></name> <configKey><![CDATA[QBA_QUESTIONABLE_BOOLEAN_ASSIGNMENT]]></configKey> </rule> <rule key="GC_UNCHECKED_TYPE_IN_GENERIC_CALL"> <priority>CRITICAL</priority> <name><![CDATA[Bad practice - Unchecked type in generic call]]></name> <configKey><![CDATA[GC_UNCHECKED_TYPE_IN_GENERIC_CALL]]></configKey> </rule> <rule key="GC_UNRELATED_TYPES"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - No relationship between generic parameter and method argument]]></name> <configKey><![CDATA[GC_UNRELATED_TYPES]]></configKey> </rule> <rule key="DMI_COLLECTIONS_SHOULD_NOT_CONTAIN_THEMSELVES"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Collections should not contain themselves]]></name> <configKey><![CDATA[DMI_COLLECTIONS_SHOULD_NOT_CONTAIN_THEMSELVES]]></configKey> </rule> <rule key="DMI_VACUOUS_SELF_COLLECTION_CALL"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Vacuous call to collections]]></name> <configKey><![CDATA[DMI_VACUOUS_SELF_COLLECTION_CALL]]></configKey> </rule> <rule key="DMI_USING_REMOVEALL_TO_CLEAR_COLLECTION"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Don't use removeAll to clear a collection]]></name> <configKey><![CDATA[DMI_USING_REMOVEALL_TO_CLEAR_COLLECTION]]></configKey> </rule> <rule key="STCAL_STATIC_CALENDAR_INSTANCE"> <priority>CRITICAL</priority> <name><![CDATA[Multithreaded correctness - Static Calendar]]></name> <configKey><![CDATA[STCAL_STATIC_CALENDAR_INSTANCE]]></configKey> </rule> <rule key="STCAL_INVOKE_ON_STATIC_CALENDAR_INSTANCE"> <priority>CRITICAL</priority> <name><![CDATA[Multithreaded correctness - Call to static Calendar]]></name> <configKey><![CDATA[STCAL_INVOKE_ON_STATIC_CALENDAR_INSTANCE]]></configKey> </rule> <rule key="STCAL_STATIC_SIMPLE_DATE_FORMAT_INSTANCE"> <priority>CRITICAL</priority> <name><![CDATA[Multithreaded correctness - Static DateFormat]]></name> <configKey><![CDATA[STCAL_STATIC_SIMPLE_DATE_FORMAT_INSTANCE]]></configKey> </rule> <rule key="STCAL_INVOKE_ON_STATIC_DATE_FORMAT_INSTANCE"> <priority>CRITICAL</priority> <name><![CDATA[Multithreaded correctness - Call to static DateFormat]]></name> <configKey><![CDATA[STCAL_INVOKE_ON_STATIC_DATE_FORMAT_INSTANCE]]></configKey> </rule> <rule key="TQ_ALWAYS_VALUE_USED_WHERE_NEVER_REQUIRED"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Value annotated as carrying a type qualifier used where a value that must not carry that qualifier is required]]></name> <configKey><![CDATA[TQ_ALWAYS_VALUE_USED_WHERE_NEVER_REQUIRED]]></configKey> </rule> <rule key="TQ_NEVER_VALUE_USED_WHERE_ALWAYS_REQUIRED"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Value annotated as never carrying a type qualifier used where value carrying that qualifier is required]]></name> <configKey><![CDATA[TQ_NEVER_VALUE_USED_WHERE_ALWAYS_REQUIRED]]></configKey> </rule> <rule key="TQ_MAYBE_SOURCE_VALUE_REACHES_ALWAYS_SINK"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Value that might not carry a type qualifier is always used in a way requires that type qualifier]]></name> <configKey><![CDATA[TQ_MAYBE_SOURCE_VALUE_REACHES_ALWAYS_SINK]]></configKey> </rule> <rule key="TQ_MAYBE_SOURCE_VALUE_REACHES_NEVER_SINK"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Value that might carry a type qualifier is always used in a way prohibits it from having that type qualifier]]></name> <configKey><![CDATA[TQ_MAYBE_SOURCE_VALUE_REACHES_NEVER_SINK]]></configKey> </rule> <rule key="TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_NEVER_SINK"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Value required to not have type qualifier, but marked as unknown]]></name> <configKey><![CDATA[TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_NEVER_SINK]]></configKey> </rule> <rule key="TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_ALWAYS_SINK"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Value required to have type qualifier, but marked as unknown]]></name> <configKey><![CDATA[TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_ALWAYS_SINK]]></configKey> </rule> <rule key="IO_APPENDING_TO_OBJECT_OUTPUT_STREAM"> <priority>CRITICAL</priority> <name><![CDATA[Correctness - Doomed attempt to append to an object output stream]]></name> <configKey><![CDATA[IO_APPENDING_TO_OBJECT_OUTPUT_STREAM]]></configKey> </rule> <rule key="WL_USING_GETCLASS_RATHER_THAN_CLASS_LITERAL"> <priority>CRITICAL</priority> <name><![CDATA[Multithreaded correctness - Sychronization on getClass rather than class literal]]></name> <configKey><![CDATA[WL_USING_GETCLASS_RATHER_THAN_CLASS_LITERAL]]></configKey> </rule> <rule key="SF_SWITCH_FALLTHROUGH"> <priority>CRITICAL</priority> <name><![CDATA[Switch statement found where one case falls through to the next case]]></name> <configKey><![CDATA[SF_SWITCH_FALLTHROUGH]]></configKey> <status>DEPRECATED</status> </rule> <rule key="SF_SWITCH_NO_DEFAULT"> <priority>MAJOR</priority> <name><![CDATA[Switch statement found where default case is missing]]></name> <configKey><![CDATA[SF_SWITCH_NO_DEFAULT]]></configKey> <status>DEPRECATED</status> </rule> <rule key="SF_DEAD_STORE_DUE_TO_SWITCH_FALLTHROUGH"> <priority>CRITICAL</priority> <name><![CDATA[Dead store due to switch statement fall through]]></name> <configKey><![CDATA[SF_DEAD_STORE_DUE_TO_SWITCH_FALLTHROUGH]]></configKey> </rule> <rule key="SF_DEAD_STORE_DUE_TO_SWITCH_FALLTHROUGH_TO_THROW"> <priority>CRITICAL</priority> <name><![CDATA[Dead store due to switch statement fall through to throw]]></name> <configKey><![CDATA[SF_DEAD_STORE_DUE_TO_SWITCH_FALLTHROUGH_TO_THROW]]></configKey> </rule> <rule key="NM_CLASS_NAMING_CONVENTION"> <priority>MAJOR</priority> <name><![CDATA[Class names should start with an upper case letter]]></name> <configKey><![CDATA[NM_CLASS_NAMING_CONVENTION]]></configKey> <status>DEPRECATED</status> </rule> <rule key="NM_FIELD_NAMING_CONVENTION"> <priority>MAJOR</priority> <name><![CDATA[Field names should start with a lower case letter]]></name> <configKey><![CDATA[NM_FIELD_NAMING_CONVENTION]]></configKey> </rule> <rule key="NM_METHOD_NAMING_CONVENTION"> <priority>MAJOR</priority> <name><![CDATA[Method names should start with a lower case letter]]></name> <configKey><![CDATA[NM_METHOD_NAMING_CONVENTION]]></configKey> </rule> <rule key="SE_BAD_FIELD"> <priority>MAJOR</priority> <name><![CDATA[Non-transient non-serializable instance field in serializable class]]></name> <configKey><![CDATA[SE_BAD_FIELD]]></configKey> </rule> <rule key="NM_BAD_EQUAL"> <priority>CRITICAL</priority> <name><![CDATA[Class defines equal(Object); should it be equals(Object)?]]></name> <configKey><![CDATA[NM_BAD_EQUAL]]></configKey> </rule> <rule key="NM_LCASE_HASHCODE"> <priority>CRITICAL</priority> <name><![CDATA[Class defines hashcode(); should it be hashCode()?]]></name> <configKey><![CDATA[NM_LCASE_HASHCODE]]></configKey> <status>DEPRECATED</status> </rule> <rule key="NM_LCASE_TOSTRING"> <priority>MAJOR</priority> <name><![CDATA[Class defines tostring(); should it be toString()?]]></name> <configKey><![CDATA[NM_LCASE_TOSTRING]]></configKey> </rule> <rule key="BAC_BAD_APPLET_CONSTRUCTOR"> <priority>INFO</priority> <name><![CDATA[Experimental - Bad Applet Constructor relies on uninitialized AppletStub]]></name> <configKey><![CDATA[BAC_BAD_APPLET_CONSTRUCTOR]]></configKey> </rule> <rule key="UOE_USE_OBJECT_EQUALS"> <priority>INFO</priority> <name><![CDATA[Experimental - Calls to equals on a final class that doesn't override Object's equals method]]></name> <configKey><![CDATA[UOE_USE_OBJECT_EQUALS]]></configKey> </rule> <rule key="CD_CIRCULAR_DEPENDENCY"> <priority>INFO</priority> <name><![CDATA[Experimental - Test for circular dependencies among classes]]></name> <configKey><![CDATA[CD_CIRCULAR_DEPENDENCY]]></configKey> </rule> <rule key="IMA_INEFFICIENT_MEMBER_ACCESS"> <priority>INFO</priority> <name><![CDATA[Experimental - Method accesses a private member variable of owning class]]></name> <configKey><![CDATA[IMA_INEFFICIENT_MEMBER_ACCESS]]></configKey> </rule> <rule key="USM_USELESS_SUBCLASS_METHOD"> <priority>INFO</priority> <name><![CDATA[Experimental - Method superfluously delegates to parent class method]]></name> <configKey><![CDATA[USM_USELESS_SUBCLASS_METHOD]]></configKey> </rule> <rule key="USM_USELESS_ABSTRACT_METHOD"> <priority>INFO</priority> <name><![CDATA[Experimental - Abstract Method is already defined in implemented interface]]></name> <configKey><![CDATA[USM_USELESS_ABSTRACT_METHOD]]></configKey> </rule> <rule key="OBL_UNSATISFIED_OBLIGATION"> <priority>INFO</priority> <name><![CDATA[Experimental - Method may fail to clean up stream or resource]]></name> <configKey><![CDATA[OBL_UNSATISFIED_OBLIGATION]]></configKey> </rule> <rule key="FB_UNEXPECTED_WARNING"> <priority>INFO</priority> <name><![CDATA[Experimental - Unexpected/undesired warning from FindBugs]]></name> <configKey><![CDATA[FB_UNEXPECTED_WARNING]]></configKey> </rule> <rule key="FB_MISSING_EXPECTED_WARNING"> <priority>INFO</priority> <name><![CDATA[Experimental - Missing expected or desired warning from FindBugs]]></name> <configKey><![CDATA[FB_MISSING_EXPECTED_WARNING]]></configKey> </rule> <rule key="LG_LOST_LOGGER_DUE_TO_WEAK_REFERENCE"> <priority>INFO</priority> <name><![CDATA[Experimental - Potential lost logger changes due to weak reference in OpenJDK]]></name> <configKey><![CDATA[LG_LOST_LOGGER_DUE_TO_WEAK_REFERENCE]]></configKey> </rule> <rule key="AT_OPERATION_SEQUENCE_ON_CONCURRENT_ABSTRACTION"> <priority>MAJOR</priority> <name><![CDATA[Sequence of calls to concurrent abstraction may not be atomic]]></name> <configKey><![CDATA[AT_OPERATION_SEQUENCE_ON_CONCURRENT_ABSTRACTION]]></configKey> </rule> <rule key="BX_UNBOXING_IMMEDIATELY_REBOXED"> <priority>MAJOR</priority> <name><![CDATA[Boxed value is unboxed and then immediately reboxed]]></name> <configKey><![CDATA[BX_UNBOXING_IMMEDIATELY_REBOXED]]></configKey> </rule> <rule key="CO_COMPARETO_RESULTS_MIN_VALUE"> <priority>MAJOR</priority> <name><![CDATA[compareTo()/compare() returns Integer.MIN_VALUE]]></name> <configKey><![CDATA[CO_COMPARETO_RESULTS_MIN_VALUE]]></configKey> </rule> <rule key="DLS_DEAD_LOCAL_STORE_SHADOWS_FIELD"> <priority>MAJOR</priority> <name><![CDATA[Dead store to local variable that shadows field]]></name> <configKey><![CDATA[DLS_DEAD_LOCAL_STORE_SHADOWS_FIELD]]></configKey> </rule> <rule key="DMI_ARGUMENTS_WRONG_ORDER"> <priority>MINOR</priority> <name><![CDATA[Reversed method arguments]]></name> <configKey><![CDATA[DMI_ARGUMENTS_WRONG_ORDER]]></configKey> </rule> <rule key="DMI_BIGDECIMAL_CONSTRUCTED_FROM_DOUBLE"> <priority>MAJOR</priority> <name><![CDATA[BigDecimal constructed from double that isn't represented precisely]]></name> <configKey><![CDATA[DMI_BIGDECIMAL_CONSTRUCTED_FROM_DOUBLE]]></configKey> </rule> <rule key="DMI_DOH"> <priority>MAJOR</priority> <name><![CDATA[D'oh! A nonsensical method invocation]]></name> <configKey><![CDATA[DMI_DOH]]></configKey> </rule> <rule key="DMI_ENTRY_SETS_MAY_REUSE_ENTRY_OBJECTS"> <priority>MAJOR</priority> <name><![CDATA[Adding elements of an entry set may fail due to reuse of Entry objects]]></name> <configKey><![CDATA[DMI_ENTRY_SETS_MAY_REUSE_ENTRY_OBJECTS]]></configKey> </rule> <rule key="DM_DEFAULT_ENCODING"> <priority>MAJOR</priority> <name><![CDATA[Reliance on default encoding]]></name> <configKey><![CDATA[DM_DEFAULT_ENCODING]]></configKey> </rule> <rule key="ICAST_INT_2_LONG_AS_INSTANT"> <priority>MAJOR</priority> <name><![CDATA[int value converted to long and used as absolute time]]></name> <configKey><![CDATA[ICAST_INT_2_LONG_AS_INSTANT]]></configKey> </rule> <rule key="INT_BAD_COMPARISON_WITH_INT_VALUE"> <priority>MAJOR</priority> <name><![CDATA[Bad comparison of int value with long constant]]></name> <configKey><![CDATA[INT_BAD_COMPARISON_WITH_INT_VALUE]]></configKey> </rule> <rule key="JML_JSR166_CALLING_WAIT_RATHER_THAN_AWAIT"> <priority>MAJOR</priority> <name><![CDATA[Using monitor style wait methods on util.concurrent abstraction]]></name> <configKey><![CDATA[JML_JSR166_CALLING_WAIT_RATHER_THAN_AWAIT]]></configKey> </rule> <rule key="NP_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD"> <priority>MAJOR</priority> <name><![CDATA[Read of unwritten public or protected field]]></name> <configKey><![CDATA[NP_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD]]></configKey> </rule> <rule key="OBL_UNSATISFIED_OBLIGATION_EXCEPTION_EDGE"> <priority>CRITICAL</priority> <name><![CDATA[Method may fail to clean up stream or resource on checked exception]]></name> <configKey><![CDATA[OBL_UNSATISFIED_OBLIGATION_EXCEPTION_EDGE]]></configKey> </rule> <rule key="PZ_DONT_REUSE_ENTRY_OBJECTS_IN_ITERATORS"> <priority>MAJOR</priority> <name><![CDATA[Don't reuse entry objects in iterators]]></name> <configKey><![CDATA[PZ_DONT_REUSE_ENTRY_OBJECTS_IN_ITERATORS]]></configKey> </rule> <rule key="RV_CHECK_COMPARETO_FOR_SPECIFIC_RETURN_VALUE"> <priority>MAJOR</priority> <name><![CDATA[Code checks for specific values returned by compareTo]]></name> <configKey><![CDATA[RV_CHECK_COMPARETO_FOR_SPECIFIC_RETURN_VALUE]]></configKey> </rule> <rule key="RV_NEGATING_RESULT_OF_COMPARETO"> <priority>MINOR</priority> <name><![CDATA[Negating the result of compareTo()/compare()]]></name> <configKey><![CDATA[RV_NEGATING_RESULT_OF_COMPARETO]]></configKey> </rule> <rule key="RV_RETURN_VALUE_IGNORED_INFERRED"> <priority>MINOR</priority> <name><![CDATA[Method ignores return value, is this OK?]]></name> <configKey><![CDATA[RV_RETURN_VALUE_IGNORED_INFERRED]]></configKey> </rule> <rule key="SA_LOCAL_SELF_ASSIGNMENT_INSTEAD_OF_FIELD"> <priority>MAJOR</priority> <name><![CDATA[Self assignment of local rather than assignment to field]]></name> <configKey><![CDATA[SA_LOCAL_SELF_ASSIGNMENT_INSTEAD_OF_FIELD]]></configKey> <status>DEPRECATED</status> </rule> <rule key="URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD"> <priority>INFO</priority> <name><![CDATA[Unread public/protected field]]></name> <configKey><![CDATA[URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD]]></configKey> </rule> <rule key="UUF_UNUSED_PUBLIC_OR_PROTECTED_FIELD"> <priority>INFO</priority> <name><![CDATA[Unused public or protected field]]></name> <configKey><![CDATA[UUF_UNUSED_PUBLIC_OR_PROTECTED_FIELD]]></configKey> </rule> <rule key="UWF_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD"> <priority>MINOR</priority> <name><![CDATA[Unwritten public or protected field]]></name> <configKey><![CDATA[UWF_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD]]></configKey> </rule> <rule key="VA_FORMAT_STRING_USES_NEWLINE"> <priority>MAJOR</priority> <name><![CDATA[Format string should use %n rather than \n]]></name> <configKey><![CDATA[VA_FORMAT_STRING_USES_NEWLINE]]></configKey> </rule> <rule key="VO_VOLATILE_INCREMENT"> <priority>CRITICAL</priority> <name><![CDATA[An increment to a volatile field isn't atomic]]></name> <configKey><![CDATA[VO_VOLATILE_INCREMENT]]></configKey> </rule> <rule key="PT_ABSOLUTE_PATH_TRAVERSAL"> <priority>MAJOR</priority> <name><![CDATA[Absolute path traversal in servlet]]></name> <configKey><![CDATA[PT_ABSOLUTE_PATH_TRAVERSAL]]></configKey> <tag>owasp-top10</tag> <tag>cwe</tag> </rule> <rule key="PT_RELATIVE_PATH_TRAVERSAL"> <priority>MAJOR</priority> <name><![CDATA[Relative path traversal in servlet]]></name> <configKey><![CDATA[PT_RELATIVE_PATH_TRAVERSAL]]></configKey> <tag>owasp-top10</tag> <tag>cwe</tag> </rule> <rule key="NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR"> <priority>CRITICAL</priority> <name><![CDATA[Nonnull field is not initialized]]></name> <configKey><![CDATA[NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR]]></configKey> </rule> <rule key="MS_SHOULD_BE_REFACTORED_TO_BE_FINAL"> <priority>MAJOR</priority> <name><![CDATA[Field isn't final but should be refactored to be so]]></name> <configKey><![CDATA[MS_SHOULD_BE_REFACTORED_TO_BE_FINAL]]></configKey> </rule> <rule key="BC_UNCONFIRMED_CAST_OF_RETURN_VALUE"> <priority>CRITICAL</priority> <name><![CDATA[Unchecked/unconfirmed cast of return value from method]]></name> <configKey><![CDATA[BC_UNCONFIRMED_CAST_OF_RETURN_VALUE]]></configKey> </rule> <rule key="TQ_COMPARING_VALUES_WITH_INCOMPATIBLE_TYPE_QUALIFIERS"> <priority>MAJOR</priority> <name><![CDATA[Comparing values with incompatible type qualifiers]]></name> <configKey><![CDATA[TQ_COMPARING_VALUES_WITH_INCOMPATIBLE_TYPE_QUALIFIERS]]></configKey> </rule> <rule key="TQ_UNKNOWN_VALUE_USED_WHERE_ALWAYS_STRICTLY_REQUIRED"> <priority>MAJOR</priority> <name><![CDATA[Value without a type qualifier used where a value is required to have that qualifier]]></name> <configKey><![CDATA[TQ_UNKNOWN_VALUE_USED_WHERE_ALWAYS_STRICTLY_REQUIRED]]></configKey> </rule> <rule key="DLS_DEAD_LOCAL_INCREMENT_IN_RETURN"> <priority>MAJOR</priority> <name><![CDATA[Useless increment in return statement]]></name> <configKey><![CDATA[DLS_DEAD_LOCAL_INCREMENT_IN_RETURN]]></configKey> </rule> <rule key="DM_BOXED_PRIMITIVE_FOR_PARSING"> <priority>MAJOR</priority> <name><![CDATA[Boxing/unboxing to parse a primitive]]></name> <configKey><![CDATA[DM_BOXED_PRIMITIVE_FOR_PARSING]]></configKey> </rule> <rule key="NP_METHOD_RETURN_RELAXING_ANNOTATION"> <priority>MAJOR</priority> <name><![CDATA[Method relaxes nullness annotation on return value]]></name> <configKey><![CDATA[NP_METHOD_RETURN_RELAXING_ANNOTATION]]></configKey> </rule> <rule key="NP_METHOD_PARAMETER_TIGHTENS_ANNOTATION"> <priority>MAJOR</priority> <name><![CDATA[Method tightens nullness annotation on parameter]]></name> <configKey><![CDATA[NP_METHOD_PARAMETER_TIGHTENS_ANNOTATION]]></configKey> </rule> <rule key="NP_OPTIONAL_RETURN_NULL"> <priority>MAJOR</priority> <name><![CDATA[Method with Optional return type returns explicit null]]></name> <configKey><![CDATA[NP_OPTIONAL_RETURN_NULL]]></configKey> </rule> <rule key="IIO_INEFFICIENT_INDEX_OF"> <priority>MAJOR</priority> <name><![CDATA[Inefficient use of String.indexOf(String)]]></name> <configKey><![CDATA[IIO_INEFFICIENT_INDEX_OF]]></configKey> </rule> <rule key="IIO_INEFFICIENT_LAST_INDEX_OF"> <priority>MAJOR</priority> <name><![CDATA[Inefficient use of String.lastIndexOf(String)]]></name> <configKey><![CDATA[IIO_INEFFICIENT_LAST_INDEX_OF]]></configKey> </rule> <rule key="CNT_ROUGH_CONSTANT_VALUE"> <priority>MAJOR</priority> <name><![CDATA[Rough value of known constant found]]></name> <configKey><![CDATA[CNT_ROUGH_CONSTANT_VALUE]]></configKey> </rule> </rules>