| 
    Checker
    | 
    Guideline
    | 
|---|
   | CMP.CLASS | OBJ09-J. Compare classes and not class names | 
  
   | CMP.OBJ | EXP03-J. Do not use the equality operators when comparing values of boxed primitives | 
  
   | EHC.EQ | MET09-J. Classes that define an equals() method must also define a hashCode() method | 
  
   | EHC.HASH | MET09-J. Classes that define an equals() method must also define a hashCode() method | 
  
   | EXC.BROADTHROWS | ERR07-J. Do not throw RuntimeException, Exception, or Throwable | 
  
   | FIN.EMPTY | MET12-J. Do not use finalizers | 
  
   | FIN.NOSUPER | MET12-J. Do not use finalizers | 
  
   | JAVA.ASSERT.ARG | MET01-J. Never use assertions to validate method arguments | 
  
   | JAVA.BIGDEC.FLOAT | NUM10-J. Do not construct BigDecimal objects from floating-point literals | 
  
   | JAVA.COMPARE.NAN | NUM07-J. Do not attempt comparisons with NaN | 
  
   | JAVA.CTOR.EXCEPT | OBJ11-J. Be wary of letting constructors throw exceptions | 
  
   | JAVA.DEBUG.ENTRY | ENV06-J. Production code must not contain debugging entry points | 
  
   | JAVA.FINAL.STATIC.VAR | OBJ11-J. Be wary of letting constructors throw exceptions | 
  
   | JAVA.INF.LOOP.EMPTY | MSC01-J. Do not use an empty infinite loop | 
  
   | JAVA.LOOP.CTR.FLOAT | NUM09-J. Do not use floating-point variables as loop counters | 
  
   | JAVA.NATIVE.PUBLIC | JNI00-J. Define wrappers around native methods | 
  
   | JAVA.SERIALIZE.INNER | SER05-J. Do not serialize instances of inner classes | 
  
   | JAVA.SV.XML.INVALID | IDS16-J. Prevent XML Injection | 
  
   | JAVA.WAIT.IN.LOOP | THI03-J. Always invoke wait() and await() methods inside a loop | 
  
   | JD.CATCH | ERR08-J. Do not catch NullPointerException or any of its ancestors | 
  
   | JD.EQ.ARR | EXP02-J. Do not use the Object.equals() method to compare two arrays | 
  
   | JD.FINRET | ERR04-J. Do not complete abruptly from a finally block | 
  
   | JD.LOCK.NOTIFY | LCK09-J. Do not perform operations that can block while holding a lock | 
  
   | JD.LOCK.SLEEP | LCK09-J. Do not perform operations that can block while holding a lock | 
  
   | JD.LOCK.WAIT | LCK09-J. Do not perform operations that can block while holding a lock | 
  
   | JD.SYNC.DCL | LCK10-J. Use a correct form of the double-checked locking idiom | 
  
   | JD.UMC.FINALIZE | MET12-J. Do not use finalizers | 
  
   | JD.UMC.RUNFIN | MET12-J. Do not use finalizers | 
  
   | JD.UNCAUGHT | ERR05-J. Do not let checked exceptions escape from a finally block | 
  
   | JD.UNMOD | DCL02-J. Do not modify the collection's elements during an enhanced for statement | 
  
   | NPE.COND | EXP01-J. Do not use a null in a case where an object is required | 
  
   | NPE.CONST | EXP01-J. Do not use a null in a case where an object is required | 
  
   | NPE.RET | EXP01-J. Do not use a null in a case where an object is required | 
  
   | NPE.RET.UTIL | EXP01-J. Do not use a null in a case where an object is required | 
  
   | NPE.STAT | EXP01-J. Do not use a null in a case where an object is required | 
  
   | REDUN.EQNULL | EXP01-J. Do not use a null in a case where an object is required | 
  
   | RI.IGNOREDCALL | EXP00-J. Do not ignore values returned by methods | 
  
   | RR.IGNORED | EXP00-J. Do not ignore values returned by methods | 
  
   | SV.DATA.DB | IDS00-J. Prevent SQL injection | 
  
   | SV.EXEC | IDS06-J. Exclude unsanitized user input from format strings | 
  
   | SV.EXEC | IDS07-J. Sanitize untrusted data passed to the Runtime.exec() method | 
  
   | SV.EXEC.DIR | IDS06-J. Exclude unsanitized user input from format strings | 
  
   | SV.EXEC.DIR | IDS07-J. Sanitize untrusted data passed to the Runtime.exec() method | 
  
   | SV.EXEC.ENV | IDS06-J. Exclude unsanitized user input from format strings | 
  
   | SV.EXEC.ENV | IDS07-J. Sanitize untrusted data passed to the Runtime.exec() method | 
  
   | SV.EXEC.LOCAL | IDS06-J. Exclude unsanitized user input from format strings | 
  
   | SV.EXEC.LOCAL | IDS07-J. Sanitize untrusted data passed to the Runtime.exec() method | 
  
   | SV.EXEC.PATH | IDS06-J. Exclude unsanitized user input from format strings | 
  
   | SV.EXEC.PATH | IDS07-J. Sanitize untrusted data passed to the Runtime.exec() method | 
  
   | SV.EXPOSE.FIELD | OBJ01-J. Limit accessibility of fields | 
  
   | SV.EXPOSE.FIELD | OBJ10-J. Do not use public static nonfinal fields | 
  
   | SV.EXPOSE.FIN | MET12-J. Do not use finalizers | 
  
   | SV.EXPOSE.IFIELD | OBJ01-J. Limit accessibility of fields | 
  
   | SV.EXPOSE.MUTABLEFIELD | OBJ01-J. Limit accessibility of fields | 
  
   | SV.EXPOSE.RET | OBJ04-J. Provide mutable classes with copy functionality to safely allow passing instances to untrusted code | 
  
   | SV.EXPOSE.RET | OBJ05-J. Do not return references to private mutable class members | 
  
   | SV.EXPOSE.STORE | OBJ04-J. Provide mutable classes with copy functionality to safely allow passing instances to untrusted code | 
  
   | SV.EXPOSE.STORE | OBJ05-J. Do not return references to private mutable class members | 
  
   | SV.HTTP_SPLIT | ERR03-J. Restore prior object state on method failure | 
  
   | SV.IL.DEV | ERR01-J. Do not allow exceptions to expose sensitive information | 
  
   | SV.INT_OVF | NUM00-J. Detect or prevent integer overflow | 
  
   | SV.SHARED.VAR | VNA00-J. Ensure visibility when accessing shared primitive variables | 
  
   | SV.SHARED.VAR | VNA01-J. Ensure visibility of shared references to immutable objects | 
  
   | SV.SHARED.VAR | VNA02-J. Ensure that compound operations on shared variables are atomic | 
  
   | SV.SHARED.VAR | LCK05-J. Synchronize access to static fields that can be modified by untrusted code | 
  
   | SV.SQL | IDS00-J. Prevent SQL injection | 
  
   | SV.SQL.DBSOURCE | IDS00-J. Prevent SQL injection | 
  
   | SV.SSRF.URI | ERR03-J. Restore prior object state on method failure | 
  
   | SV.STRUTS.PRIVATE | OBJ01-J. Limit accessibility of fields | 
  
   | SV.STRUTS.STATIC | OBJ01-J. Limit accessibility of fields | 
  
   | SV.STRUTS.STATIC | OBJ10-J. Do not use public static nonfinal fields | 
  
   | SV.TAINT | IDS01-J. Normalize strings before validating them | 
  
   | SV.TAINT_NATIVE | IDS01-J. Normalize strings before validating them | 
  
   | SV.UMC.EXIT | ERR09-J. Do not allow untrusted code to terminate the JVM | 
  
   | SV.XSS.DB | IDS01-J. Normalize strings before validating them | 
  
   | SV.XSS.REF | IDS01-J. Normalize strings before validating them | 
  
   | SV.XXE.DBF | IDS17-J. Prevent XML External Entity Attacks | 
  
   | SV.XXE.SF | IDS17-J. Prevent XML External Entity Attacks | 
  
   | SV.XXE.SPF | IDS17-J. Prevent XML External Entity Attacks | 
  
   | SV.XXE.TF | IDS17-J. Prevent XML External Entity Attacks | 
  
   | SV.XXE.XIF | IDS17-J. Prevent XML External Entity Attacks | 
  
   | SV.XXE.XRF | IDS17-J. Prevent XML External Entity Attacks | 
  
   | SVLOG_FORGING | IDS03-J. Do not log unsanitized user input | 
  
   | UMC.EXIT | ERR09-J. Do not allow untrusted code to terminate the JVM |