Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Checker

Guideline

FB.BAD_PRACTICE.DE_MIGHT_IGNORE ERR00-J. Do not suppress or ignore checked exceptions
FB.BAD_PRACTICE.DM_EXIT ERR09-J. Do not allow untrusted code to terminate the JVM
FB.BAD_PRACTICE.EQ_GETCLASS_AND_CLASS_CONSTANT MET08-J. Preserve the equality contract when overriding the equals() method
FB.BAD_PRACTICE.FI_EMPTY MET12-J. Do not use finalizers
FB.BAD_PRACTICE.FI_EXPLICIT_INVOCATION MET12-J. Do not use finalizers
FB.BAD_PRACTICE.FI_FINALIZER_NULLS_FIELDS MET12-J. Do not use finalizers
FB.BAD_PRACTICE.FI_FINALIZER_ONLY_NULLS_FIELDS MET12-J. Do not use finalizers
FB.BAD_PRACTICE.FI_MISSING_SUPER_CALL MET12-J. Do not use finalizers
FB.BAD_PRACTICE.FI_NULLIFY_SUPER MET12-J. Do not use finalizers
FB.BAD_PRACTICE.FI_USELESS MET12-J. Do not use finalizers
FB.BAD_PRACTICE.NP_BOOLEAN_RETURN_NULL EXP01-J. Do not use a null in a case where an object is required
FB.BAD_PRACTICE.NP_CLONE_COULD_RETURN_NULL EXP01-J. Do not use a null in a case where an object is required
FB.BAD_PRACTICE.NP_EQUALS_SHOULD_HANDLE_NULL_ARGUMENT EXP01-J. Do not use a null in a case where an object is required
FB.BAD_PRACTICE.NP_TOSTRING_COULD_RETURN_NULL EXP01-J. Do not use a null in a case where an object is required
FB.CORRECTNESS.BOA_BADLY_OVERRIDDEN_ADAPTER MET07-J. Never declare a class method that hides a method declared in a superclass or superinterface
FB.CORRECTNESS.BSHIFT_WRONG_ADD_PRIORITY EXP53-J. Use parentheses for precedence of operation
FB.CORRECTNESS.EC_BAD_ARRAY_COMPARE EXP02-J. Do not use the Object.equals() method to compare two arrays
FB.CORRECTNESS.EQ_COMPARING_CLASS_NAMES OBJ09-J. Compare classes and not class names
FB.CORRECTNESS.FE_TEST_IF_EQUAL_TO_NOT_A_NUMBER NUM07-J. Do not attempt comparisons with NaN
FB.CORRECTNESS.HE_SIGNATURE_DECLARES_HASHING_OF_UNHASHABLE_CLASS MET09-J. Classes that define an equals() method must also define a hashCode() method
FB.CORRECTNESS.HE_USE_OF_UNHASHABLE_CLASS MET09-J. Classes that define an equals() method must also define a hashCode() method
FB.CORRECTNESS.IP_PARAMETER_IS_DEAD_BUT_OVERWRITTEN MET13-J. Do not assume that reassigning method arguments modifies the calling environment
FB.CORRECTNESS.NP_ALWAYS_NULL EXP01-J. Do not use a null in a case where an object is required
FB.CORRECTNESS.NP_ALWAYS_NULL_EXCEPTION EXP01-J. Do not use a null in a case where an object is required
FB.CORRECTNESS.NP_ARGUMENT_MIGHT_BE_NULL EXP01-J. Do not use a null in a case where an object is required
FB.CORRECTNESS.NP_CLOSING_NULL EXP01-J. Do not use a null in a case where an object is required
FB.CORRECTNESS.NP_GUARANTEED_DEREF EXP01-J. Do not use a null in a case where an object is required
FB.CORRECTNESS.NP_GUARANTEED_DEREF_ON_EXCEPTION_PATH EXP01-J. Do not use a null in a case where an object is required
FB.CORRECTNESS.NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR EXP01-J. Do not use a null in a case where an object is required
FB.CORRECTNESS.NP_NONNULL_PARAM_VIOLATION EXP01-J. Do not use a null in a case where an object is required
FB.CORRECTNESS.NP_NONNULL_RETURN_VIOLATION EXP01-J. Do not use a null in a case where an object is required
FB.CORRECTNESS.NP_NULL_ON_SOME_PATH EXP01-J. Do not use a null in a case where an object is required
FB.CORRECTNESS.NP_NULL_ON_SOME_PATH_EXCEPTION EXP01-J. Do not use a null in a case where an object is required
FB.CORRECTNESS.NP_NULL_PARAM_DEREF EXP01-J. Do not use a null in a case where an object is required
FB.CORRECTNESS.NP_NULL_PARAM_DEREF_ALL_TARGETS_DANGEROUS EXP01-J. Do not use a null in a case where an object is required
FB.CORRECTNESS.NP_NULL_PARAM_DEREF_NONVIRTUAL EXP01-J. Do not use a null in a case where an object is required
FB.CORRECTNESS.NP_STORE_INTO_NONNULL_FIELD EXP01-J. Do not use a null in a case where an object is required
FB.CORRECTNESS.NP_UNWRITTEN_FIELD EXP01-J. Do not use a null in a case where an object is required
FB.CORRECTNESS.OVERRIDING_EQUALS_NOT_SYMMETRIC MET08-J. Preserve the equality contract when overriding the equals() method
FB.CORRECTNESS.RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE EXP01-J. Do not use a null in a case where an object is required
FB.I18N.DM_CONVERT_CASE STR02-J. Specify an appropriate locale when comparing locale-dependent data
FB.I18N.DM_DEFAULT_ENCODING STR02-J. Specify an appropriate locale when comparing locale-dependent data
FB.MALICIOUS_CODE.EI_EXPOSE_REP OBJ04-J. Provide mutable classes with copy functionality to safely allow passing instances to untrusted code
FB.MALICIOUS_CODE.EI_EXPOSE_REP2 OBJ04-J. Provide mutable classes with copy functionality to safely allow passing instances to untrusted code
FB.MALICIOUS_CODE.EI_EXPOSE_STATIC_REP2 OBJ06-J. Defensively copy mutable inputs and mutable internal components
FB.MALICIOUS_CODE.FI_PUBLIC_SHOULD_BE_PROTECTED MET12-J. Do not use finalizers
FB.MALICIOUS_CODE.MS_MUTABLE_COLLECTION OBJ56-J. Provide sensitive mutable classes with unmodifiable wrappers
FB.MALICIOUS_CODE.MS_MUTABLE_COLLECTION_PKGPROTECT OBJ56-J. Provide sensitive mutable classes with unmodifiable wrappers
FB.MALICIOUS_CODE.MS_OOI_PKGPROTECT OBJ56-J. Provide sensitive mutable classes with unmodifiable wrappers
FB.MALICIOUS_CODE.MS_PKGPROTECT OBJ56-J. Provide sensitive mutable classes with unmodifiable wrappers
FB.MALICIOUS_CODE.MS_SHOULD_BE_FINAL OBJ10-J. Do not use public static nonfinal fields
FB.MALICIOUS_CODE.MS_SHOULD_BE_REFACTORED_TO_BE_FINAL OBJ10-J. Do not use public static nonfinal fields
FB.MT_CORRECTNESS.DC_DOUBLECHECK LCK10-J. Use a correct form of the double-checked locking idiom
FB.MT_CORRECTNESS.DC_PARTIALLY_CONSTRUCTED TSM03-J. Do not publish partially initialized objects
FB.MT_CORRECTNESS.DL_SYNCHRONIZATION_ON_BOOLEAN LCK01-J. Do not synchronize on objects that may be reused
FB.MT_CORRECTNESS.DL_SYNCHRONIZATION_ON_BOXED_PRIMITIVE LCK01-J. Do not synchronize on objects that may be reused
FB.MT_CORRECTNESS.DL_SYNCHRONIZATION_ON_SHARED_CONSTANT LCK01-J. Do not synchronize on objects that may be reused
FB.MT_CORRECTNESS.IS2_INCONSISTENT_SYNC VNA02-J. Ensure that compound operations on shared variables are atomic
FB.MT_CORRECTNESS.IS2_INCONSISTENT_SYNC VNA03-J. Do not assume that a group of calls to independently atomic methods is atomic
FB.MT_CORRECTNESS.IS_FIELD_NOT_GUARDED VNA02-J. Ensure that compound operations on shared variables are atomic
FB.MT_CORRECTNESS.IS_FIELD_NOT_GUARDED VNA03-J. Do not assume that a group of calls to independently atomic methods is atomic
FB.MT_CORRECTNESS.JLM_JSR166_LOCK_MONITORENTER LCK03-J. Do not synchronize on the intrinsic locks of high-level concurrency objects
FB.MT_CORRECTNESS.NO_NOTIFY_NOT_NOTIFYALL THI02-J. Notify all waiting threads rather than a single thread
FB.MT_CORRECTNESS.RU_INVOKE_RUN THI00-J. Do not invoke Thread.run()
FB.MT_CORRECTNESS.SC_START_IN_CTOR TSM02-J. Do not use background threads during class initialization
FB.MT_CORRECTNESS.STCAL_INVOKE_ON_STATIC_CALENDAR_INSTANCE VNA02-J. Ensure that compound operations on shared variables are atomic
FB.MT_CORRECTNESS.STCAL_INVOKE_ON_STATIC_CALENDAR_INSTANCE VNA03-J. Do not assume that a group of calls to independently atomic methods is atomic
FB.MT_CORRECTNESS.STCAL_INVOKE_ON_STATIC_DATE_FORMAT_INSTANCE VNA02-J. Ensure that compound operations on shared variables are atomic
FB.MT_CORRECTNESS.STCAL_INVOKE_ON_STATIC_DATE_FORMAT_INSTANCE VNA03-J. Do not assume that a group of calls to independently atomic methods is atomic
FB.MT_CORRECTNESS.STCAL_STATIC_CALENDAR_INSTANCE VNA02-J. Ensure that compound operations on shared variables are atomic
FB.MT_CORRECTNESS.STCAL_STATIC_CALENDAR_INSTANCE VNA03-J. Do not assume that a group of calls to independently atomic methods is atomic
FB.MT_CORRECTNESS.STCAL_STATIC_SIMPLE_DATE_FORMAT_INSTANCE VNA02-J. Ensure that compound operations on shared variables are atomic
FB.MT_CORRECTNESS.STCAL_STATIC_SIMPLE_DATE_FORMAT_INSTANCE VNA03-J. Do not assume that a group of calls to independently atomic methods is atomic
FB.MT_CORRECTNESS.SWL_SLEEP_WITH_LOCK_HELD LCK09-J. Do not perform operations that can block while holding a lock
FB.MT_CORRECTNESS.WA_AWAIT_NOT_IN_LOOP THI03-J. Always invoke wait() and await() methods inside a loop
FB.MT_CORRECTNESS.WA_NOT_IN_LOOP THI03-J. Always invoke wait() and await() methods inside a loop
FB.SECURITY.DMI_CONSTANT_DB_PASSWORD MSC03-J. Never hard code sensitive information
FB.SECURITY.DMI_EMPTY_DB_PASSWORD MSC03-J. Never hard code sensitive information
FB.SECURITY.SQL_NONCONSTANT_STRING_PASSED_TO_EXECUTE IDS00-J. Prevent SQL injection
FB.SECURITY.SQL_PREPARED_STATEMENT_GENERATED_FROM_NONCONSTANT_STRING IDS00-J. Prevent SQL injection
FB.STYLE.IC_INIT_CIRCULARITY DCL00-J. Prevent class initialization cycles
FB.STYLE.NP_DEREFERENCE_OF_READLINE_VALUE EXP01-J. Do not use a null in a case where an object is required
FB.STYLE.NP_IMMEDIATE_DEREFERENCE_OF_READLINE EXP01-J. Do not use a null in a case where an object is required
FB.STYLE.NP_LOAD_OF_KNOWN_NULL_VALUE EXP01-J. Do not use a null in a case where an object is required
FB.STYLE.NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE EXP01-J. Do not use a null in a case where an object is required
FB.STYLE.NP_NULL_ON_SOME_PATH_MIGHT_BE_INFEASIBLE EXP01-J. Do not use a null in a case where an object is required
FB.STYLE.NP_PARAMETER_MUST_BE_NONNULL_BUT_MARKED_AS_NULLABLE EXP01-J. Do not use a null in a case where an object is required
FB.STYLE.NP_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD EXP01-J. Do not use a null in a case where an object is required
PMD.Basic.AvoidThreadGroup THI01-J. Do not invoke ThreadGroup methods
PMD.Basic.DontUseFloatTypeForLoopIndices NUM09-J. Do not use floating-point variables as loop counters
PMD.Design.AvoidReassigningParameters MET13-J. Do not assume that reassigning method arguments modifies the calling environment
PMD.Design.BadComparison NUM07-J. Do not attempt comparisons with NaN
PMD.Design.SimpleDateFormatNeedsLocale STR02-J. Specify an appropriate locale when comparing locale-dependent data
PMD.Design.UseLocaleWithCaseConversions STR02-J. Specify an appropriate locale when comparing locale-dependent data
PMD.Design.UseNotifyAllInsteadOfNotify THI02-J. Notify all waiting threads rather than a single thread
PMD.J2EE.DoNotCallSystemExit ERR09-J. Do not allow untrusted code to terminate the JVM
PMD.Security-Code-Guidelines.ArrayIsStoredDirectly OBJ06-J. Defensively copy mutable inputs and mutable internal components
PMD.Strict-Exceptions.AvoidCatchingThrowable ERR08-J. Do not catch NullPointerException or any of its ancestors
PMD.Strict-Exceptions.DoNotThrowExceptionInFinally ERR04-J. Do not complete abruptly from a finally block