Versions Compared

Key

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

...

Tip

The table below can be re-ordered, by clicking column headers.

...

Include Page
java:CodeSonar_Vjava:
CodeSonar_V

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

JAVA.ALLOC.LEAK.NOTCLOSED FIO04-J. Release resources when they are no longer needed
JAVA.ALLOC.LEAK.NOTSTORED FIO04-J. Release resources when they are no longer needed
JAVA.ALLOC.LEAK.NOTSTORED SER10-J. Avoid memory and resource leaks during serialization
JAVA.ALLOC.LEAK.NOTSTORED MSC05-J. Do not exhaust heap space
JAVA.ARITH.FPEQUAL NUM12-J. Ensure conversions of numeric types to narrower types do not result in lost or misinterpreted data
JAVA.ARITH.OFLOW NUM00-J. Detect or prevent integer overflow
JAVA.CAST.FTRUNC NUM12-J. Ensure conversions of numeric types to narrower types do not result in lost or misinterpreted data
JAVA.CAST.FTRUNC NUM13-J. Avoid loss of precision when converting primitive integers to floating-point
JAVA.CLASS.ACCESS.BYPASS SEC05-J. Do not use reflection to increase accessibility of classes, methods, or fields
JAVA.CLASS.ACCESS.MODIFY SEC05-J. Do not use reflection to increase accessibility of classes, methods, or fields
JAVA.CLASS.CLONE.CCSM MET53-J. Ensure that the clone() method calls super.clone()
JAVA.CLASS.CLONE.CNC OBJ07-J. Sensitive classes must not let themselves be copied
JAVA.CLASS.CLONE.NF OBJ07-J. Sensitive classes must not let themselves be copied
JAVA.CLASS.CLONE.SCNC OBJ07-J. Sensitive classes must not let themselves be copied
JAVA.CLASS.ICSBS OBJ08-J. Do not expose private members of an outer class from within a nested class
JAVA.CLASS.MCS MET53-J. Ensure that the clone() method calls super.clone()
JAVA.CLASS.SER.ND SER01-J. Do not deviate from the proper signatures of serialization methods
JAVA.CLASS.SER.ND SER03-J. Do not serialize unencrypted sensitive data
JAVA.CLASS.SER.ND SER06-J. Make defensive copies of private mutable components during deserialization
JAVA.CLASS.SER.ND SER07-J. Do not use the default serialized form for classes with implementation-defined invariants
JAVA.CLASS.SER.ND SER12-J. Prevent deserialization of untrusted data
JAVA.CLASS.SER.UIDM SER00-J. Enable serialization compatibility during class evolution
JAVA.CLASS.UI SER10-J. Avoid memory and resource leaks during serialization
JAVA.CLASS.UI MSC05-J. Do not exhaust heap space
JAVA.COMPARE.CTO.ASSYM MET08-J. Preserve the equality contract when overriding the equals() method
JAVA.COMPARE.EMPTYSTR EXP03-J. Do not use the equality operators when comparing values of boxed primitives
JAVA.COMPARE.EQ FB.CORRECTNESS.EC_BAD_ARRAY_COMPARE EXP02-J. Do not use the Object.equals() method to compare two arrays
FB JAVA.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
COMPARE.EQ EXP03-J. Do not use the equality operators when comparing values of boxed primitives
JAVA.COMPARE.EQARRAY EXP02-J. Do not use the Object.equals() method to compare two arrays
JAVA.COMPARE.EQARRAY EXP03-J. Do not use the equality operators when comparing values of boxed primitives
JAVA.CONCURRENCY.LOCK.DCL LCK10-J. Use a correct form of the double-checked locking idiom
JAVA.CONCURRENCY.LOCK.ICS VNA00-J. Ensure visibility when accessing shared primitive variables
JAVA.CONCURRENCY.LOCK.ISTR LCK00-J. Use private final lock objects to synchronize classes that may interact with untrusted code
JAVA.CONCURRENCY.LOCK.SCTB THI00-J. Do not invoke Thread.run()
JAVA.CONCURRENCY.LOCK.STATIC VNA00-J. Ensure visibility when accessing shared primitive variables
JAVA.CONCURRENCY.STARVE.BLOCKING LCK09-J. Do not perform operations that can block while holding a lock
JAVA.CONCURRENCY.SYNC.MSS VNA00-J. Ensure visibility when accessing shared primitive variables
JAVA.CONCURRENCY.UG.FIELD VNA00-J. Ensure visibility when accessing shared primitive variables
JAVA.CONCURRENCY.UG.METH LCK05-J. Synchronize access to static fields that can be modified by untrusted code
JAVA.CONCURRENCY.UG.PARAM VNA00-J. Ensure visibility when accessing shared primitive variables
JAVA.CONCURRENCY.VOLATILE VNA00-J. Ensure visibility when accessing shared primitive variables
JAVA.CONCURRENCY.VOLATILE VNA03-J. Do not assume that a group of calls to independently atomic methods is atomic
JAVA.CRYPTO.BASE64 MSC02-J. Generate strong random numbers
JAVA.CRYPTO.RA MSC02-J. Generate strong random numbers
JAVA.CRYPTO.RCF MSC02-J. Generate strong random numbers
JAVA.CRYPTO.RF MSC02-J. Generate strong random numbers
JAVA.CRYPTO.WHAF MSC02-J. Generate strong random numbers
JAVA.DEBUG.CALL ERR09-J. Do not allow untrusted code to terminate the JVM
JAVA.DEBUG.CEDF ENV06-J. Production code must not contain debugging entry points
JAVA.DEBUG.LOG ERR02-J. Prevent exceptions while logging data
JAVA.DEBUG.MEDF ENV06-J. Production code must not contain debugging entry points
JAVA.DEEPNULL. FB.CORRECTNESS.NP_GUARANTEED_DEREF EXP01-J. Do not use a null in a case where an object is required
FB JAVA.CORRECTNESS.NP_GUARANTEED_DEREF_ON_EXCEPTION_PATH DEEPNULL.EFIELD EXP01-J. Do not use a null in a case where an object is required
FB JAVA.CORRECTNESSDEEPNULL.NP_NONNULL_FIELD _NOT_INITIALIZED_IN_CONSTRUCTOR EXP01-J. Do not use a null in a case where an object is required
FB JAVA.CORRECTNESSDEEPNULL.NP_NONNULL_PARAM_VIOLATION PARAM.ACTUAL EXP01-J. Do not use a null in a case where an object is required
FB JAVA.DEEPNULL.CORRECTNESS.NP_NONNULL_RETURN_VIOLATION PARAM.EACTUAL EXP01-J. Do not use a null in a case where an object is required
FB JAVA.DEEPNULL.CORRECTNESS.NP_NULL_ON_SOME_PATH RET.EMETH EXP01-J. Do not use a null in a case where an object is required
FB JAVA.DEEPNULL.CORRECTNESS.NP_NULL_ON_SOME_PATH_EXCEPTION RET.METH EXP01-J. Do not use a null in a case where an object is required
FB JAVA.CORRECTNESS.NP_NULL_PARAM_DEREF FUNCS.IRV EXP00 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
ignore values returned by methods
JAVA.FUNCS.IRV FIO02-J. Detect and handle file-related errors
JAVA.HARDCODED.PASSWD MSC03-J. Never hard code sensitive information
JAVA.HARDCODED.SEED MSC02-J. Generate strong random numbers
JAVA.IDEF.CTOEQ MET08-J. Preserve the equality contract when overriding the equals() method
JAVA.IDEF.CTONOEQ FB.CORRECTNESS.OVERRIDING_EQUALS_NOT_SYMMETRIC MET08-J. Preserve the equality contract when overriding the equals() method
FB JAVA.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
IDEF.EQUALSNOHC MET09-J. Classes that define an equals() method must also define a hashCode() method
JAVA.IDEF.HCNOEQUALS MET09-J. Classes that define an equals() method must also define a hashCode() method
JAVA.IDEF.NOEQUALS MET08-J. Preserve the equality contract when overriding the equals() method
JAVA.INSEC.LDAP.DA ENV01-J. Place all security-sensitive code in a single JAR and sign and seal it
JAVA.IO.INJ.ANDROID.MESSAGE SER02-J. Sign then seal objects before sending them outside a trust boundary
JAVA.IO.INJ.ANDROID.MESSAGE SEC06-J. Do not rely on the default automatic signature verification provided by URLClassLoader and java.util.jar
JAVA.IO.INJ.CODE IDS14-J. Do not trust the contents of hidden form fields
JAVA.IO.INJ.COMMAND IDS07-J. Sanitize untrusted data passed to the Runtime.exec() method
JAVA.IO.INJ.COMMAND IDS14-J. Do not trust the contents of hidden form fields
JAVA.IO.INJ.DENIAL IDS14-J. Do not trust the contents of hidden form fields
JAVA.IO.INJ.DLL IDS14-J. Do not trust the contents of hidden form fields
JAVA.IO.INJ.SQL IDS00-J. Prevent SQL injection
JAVA.IO.INJ.SQL IDS14-J. Do not trust the contents of hidden form fields
JAVA.IO.INJ.XSS IDS14-J. Do not trust the contents of hidden form fields
JAVA.IO.INJ.XSS.EMWP IDS14-J. Do not trust the contents of hidden form fields
JAVA.IO.PERM FIO01-J. Create files with appropriate access permissions
JAVA.IO.PERM SEC01-J. Do not allow tainted variables in privileged blocks
JAVA.IO.PERM ENV03-J. Do not grant dangerous combinations of permissions
JAVA.IO.PERM.ACCESS FIO01-J. Create files with appropriate access permissions
JAVA.IO.PERM.ACCESS SEC01-J. Do not allow tainted variables in privileged blocks
JAVA.IO.TAINT.ADDR IDS14-J. Do not trust the contents of hidden form fields
JAVA.IO.TAINT.BUNDLE IDS14-J. Do not trust the contents of hidden form fields
JAVA.IO.TAINT.CONTROL IDS14-J. Do not trust the contents of hidden form fields
JAVA.IO.TAINT.DEVICE IDS14-J. Do not trust the contents of hidden form fields
JAVA.IO.TAINT.EVAL IDS14-J. Do not trust the contents of hidden form fields
JAVA.IO.TAINT.HTTP IDS14-J. Do not trust the contents of hidden form fields
JAVA.IO.TAINT.LDAP.ATTR IDS14-J. Do not trust the contents of hidden form fields
JAVA.IO.TAINT.LDAP.FILTER IDS14-J. Do not trust the contents of hidden form fields
JAVA.IO.TAINT.LOG IDS03-J. Do not log unsanitized user input
JAVA.IO.TAINT.LOG IDS14-J. Do not trust the contents of hidden form fields
JAVA.IO.TAINT.MESSAGE IDS14-J. Do not trust the contents of hidden form fields
JAVA.IO.TAINT.MESSAGE SER02-J. Sign then seal objects before sending them outside a trust boundary
JAVA.IO.TAINT.MESSAGE SEC06-J. Do not rely on the default automatic signature verification provided by URLClassLoader and java.util.jar
JAVA.IO.TAINT.PATH IDS14-J. Do not trust the contents of hidden form fields
JAVA.IO.TAINT.REFLECTION IDS14-J. Do not trust the contents of hidden form fields
JAVA.IO.TAINT.REGEX IDS08-J. Sanitize untrusted data included in a regular expression
JAVA.IO.TAINT.REGEX IDS14-J. Do not trust the contents of hidden form fields
JAVA.IO.TAINT.RESOURCE IDS14-J. Do not trust the contents of hidden form fields
JAVA.IO.TAINT.SESSION IDS14-J. Do not trust the contents of hidden form fields
JAVA.IO.TAINT.TRUSTED IDS14-J. Do not trust the contents of hidden form fields
JAVA.IO.TAINT.URL IDS14-J. Do not trust the contents of hidden form fields
JAVA.IO.TAINT.XAML IDS14-J. Do not trust the contents of hidden form fields
JAVA.IO.TAINT.XML IDS14-J. Do not trust the contents of hidden form fields
JAVA.IO.TAINT.XPATH IDS14-J. Do not trust the contents of hidden form fields
JAVA.LIB.RAND.FUNC MSC02-J. Generate strong random numbers
JAVA.LIB.RAND.LEGACY.GEN MSC02-J. Generate strong random numbers
JAVA.MATH.ABSRAND NUM00-J. Detect or prevent integer overflow
JAVA.MATH.APPROX.E NUM12-J. Ensure conversions of numeric types to narrower types do not result in lost or misinterpreted data
JAVA.MATH.APPROX.PI NUM12-J. Ensure conversions of numeric types to narrower types do not result in lost or misinterpreted data
JAVA.MISC.SD.EXT MSC03-J. Never hard code sensitive information
JAVA.NULL.DEREF FB.STYLE.NP_DEREFERENCE_OF_READLINE_VALUE EXP01-J. Do not use a null in a case where an object is required
FB JAVA.NULL.STYLE.NP_IMMEDIATE_DEREFERENCE_OF_READLINE PARAM.ACTUAL EXP01-J. Do not use a null in a case where an object is required
FB JAVA.NULL.STYLE.NP_LOAD_OF_KNOWN_NULL_VALUE RET.ARRAY EXP01-J. Do not use a null in a case where an object is required
FB JAVA.NULL.STYLE.NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE RET.BOOL EXP01-J. Do not use a null in a case where an object is required
FB JAVA.NULL.STYLE.NP_NULL_ON_SOME_PATH_MIGHT_BE_INFEASIBLE RET.OPT EXP01-J. Do not use a null in a case where an object is required
FB JAVA.NULL.STYLE.NP_PARAMETER_MUST_BE_NONNULL_BUT_MARKED_AS_NULLABLE RET.UNCHECKED EXP00 EXP01-J. Do not use a null in a case where an object is required ignore values returned by methods
JAVA.STRUCT.DUPD FB.STYLE.NP_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD EXP01-J. Do not use a null in a case where an object is required
PMD JAVA.STRUCT.BasicEXCP.AvoidThreadGroup BROAD THI01 ERR07-J. Do not invoke ThreadGroup methods throw RuntimeException, Exception, or Throwable
JAVA.STRUCT.EXCP.EEH ERR00 PMD.Basic.DontUseFloatTypeForLoopIndices NUM09-J. Do not use floating-point variables as loop counters suppress or ignore checked exceptions
JAVA.STRUCT.EXCP.GEH ERR08 PMD.Design.AvoidReassigningParameters MET13-J. Do not assume that reassigning method arguments modifies the calling environment catch NullPointerException or any of its ancestors
JAVA.STRUCT.EXCP.INAPP ERR08 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
catch NullPointerException or any of its ancestors
JAVA.STRUCT.SE.ASSERT DCL00-J. Prevent class initialization cycles
JAVA.STRUCT.SE.ASSERT EXP06-J. Expressions used in assertions must not produce side effects
JAVA.STRUCT.UA DCL00-J. Prevent class initialization cycles
JAVA.STRUCT.UA.DEFAULT DCL00-J. Prevent class initialization cycles
JAVA.STRUCT.UPD EXP01-J. Do not use a null in a case where an object is required
JAVA.STRUCT.UPED EXP01-J. Do not use a null in a case where an object is required PMD.Strict-Exceptions.DoNotThrowExceptionInFinally ERR04-J. Do not complete abruptly from a finally block