Versions Compared

Key

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

...

Include Page
java:Parasoft_V
java:Parasoft_V

Checker

Guideline

CERT.DCL00.ACD DCL00-J. Prevent class initialization cycles
CERT.DCL02.ITMOD DCL02-J. Do not modify the collection's elements during an enhanced for statement
CERT.ENV02.ENV ENV02-J. Do not trust the values of environment variables
CERT.ERR00.LGE ERR00 BD-SECURITY-TDLOG IDS03-J. Do not log unsanitized user input
BD-SECURITY-TDSQL IDS00-J. Prevent SQL injection
BD.API.ARGWRITE FIO09-J. Do not rely on the write() method to output integers outside the range 0 to 255
BD.API.EQREFL MET08-J. Preserve the equality contract when overriding the equals() method
BD.CO.ITMOD DCL02-J. Do not modify the collection's elements during an enhanced for statement
BD.CO.ITMOD MSC06-J. Do not modify the underlying collection when an iteration is in progress
suppress or ignore checked exceptions
CERT.ERR00.UCATCH ERR00-J. Do not suppress or ignore checked exceptions
CERT.ERR01.ACPST ERR01-J. Do not allow exceptions to expose sensitive information
CERT.ERR01.ACW ERR01-J. Do not allow exceptions to expose sensitive information
CERT.ERR01.CETS ERR01-J. Do not allow exceptions to expose sensitive information
CERT.ERR03.REVOBJ ERR03-J. Restore prior object state on method failure
CERT.ERR04.ARCF ERR04-J. Do not complete abruptly from a finally block
CERT.ERR04.ATSF ERR04-J. Do not complete abruptly from a finally block
CERT.ERR05.ARCF ERR05-J. Do not let checked exceptions escape from a finally block
CERT.ERR05.ATSF ERR05-J. Do not let checked exceptions escape from a finally block
CERT.ERR07.NTERR ERR07-J. Do not throw RuntimeException, Exception, or Throwable
CERT.ERR07.NTX ERR07-J. Do not throw RuntimeException, Exception, or Throwable
CERT.ERR08.NCNPE ERR08-J. Do not catch NullPointerException or any of its ancestors
CERT.ERR09.EXIT ERR09-J. Do not allow untrusted code to terminate the JVM
CERT.ERR09.JVM ERR09-J. Do not allow untrusted code to terminate the JVM
CERT.EXP00.AECB EXP00-J. Do not ignore values returned by methods
CERT.EXP00.NASSIG EXP00-J. Do not ignore values returned by methods
CERT.EXP01.NCMD EXP01-J. Do not use a null in a case where an object is required
CERT.EXP01 BD.EXCEPT.NP EXP01-J. Do not use a null in a case where an object is required
BD CERT.PBEXP02.MULBUF UEIC FIO06 EXP02-J. Do not create multiple buffered wrappers on a single byte or character stream
BD.PB.REVOBJ ERR03-J. Restore prior object state on method failure
BD.PB.VREADOBJ SER09-J. Do not invoke overridable methods from the readObject() method
BD.PB.ZERO NUM02-J. Ensure that division and remainder operations do not result in divide-by-zero errors
use the Object.equals() method to compare two arrays
CERT.EXP03.UEIC EXP03-J. Do not use the equality operators when comparing values of boxed primitives
CERT.EXP05.CID EXP05-J. Do not follow a write by a subsequent write or read of the same object within an expression
CERT.FIO03.ATF FIO03-J. Remove temporary files before termination
CERT.FIO03.REMTMP FIO03-J. Remove temporary files before termination
CERT.FIO04.CCR FIO04-J. Release resources when they are no longer needed
CERT.FIO04.CIO BD.RES.LEAKS FIO04-J. Release resources when they are no longer needed
BD CERT.RESFIO04.LEAKS MSC04 FIO04-J. Do not leak memory Release resources when they are no longer needed
CERT.FIO05 BD.SECURITY.BUFEXP FIO05-J. Do not expose buffers or their backing arrays methods to untrusted code
BD CERT.SECURITYFIO06.FPEXC MULBUF NUM08 FIO06-J. Check floating-point inputs for exceptional values Do not create multiple buffered wrappers on a single byte or character stream
CERT.FIO07.EXEC FIO07 BD.SECURITY.PRIVIL SEC01-J. Do not allow tainted variables in privileged blocks
BD.SECURITY.REMTMP FIO03-J. Remove temporary files before termination
BD.SECURITY.SENS FIO13-J. Do not log sensitive information outside a trust boundary
BD.SECURITY.TDRFL SEC02-J. Do not base security checks on untrusted sources
BD.SECURITY.TDXML IDS16-J. Prevent XML Injection
BD.SECURITY.VPPD IDS11-J. Perform any string modifications before validation
BD.TRS.INSTLOCK LCK06-J. Do not use an instance lock to protect shared static data
BD.TRS.LOCK LCK08-J. Ensure actively held locks are released on exceptional conditions
BD.TRS.TSHL LCK09-J. Do not perform operations that can block while holding a lock
CODSTA.BP.ARM SEC05-J. Do not use reflection to increase accessibility of classes, methods, or fields
CODSTA.BP.EXIT ERR09-J. Do not allow untrusted code to terminate the JVM
CODSTA.EPC.AGBPT OBJ03-J. Prevent heap pollution
CODSTA.OIM.OVERRIDE MET09-J. Classes that define an equals() method must also define a hashCode() method
CODSTA.READ.CID EXP05-J. Do not follow a write by a subsequent write or read of the same object within an expression
CODSTD.BP.NTX ERR07-J. Do not throw RuntimeException, Exception, or Throwable
EJB.MNDF MET12-J. Do not use finalizers
EXCEPT.EPNFC OBJ11-J. Be wary of letting constructors throw exceptions
EXCEPT.NCNPE ERR08-J. Do not catch NullPointerException or any of its ancestors
EXCEPT.NTERR ERR07-J. Do not throw RuntimeException, Exception, or Throwable
GC.FCF MET12-J. Do not use finalizers
GC.FM MET12-J. Do not use finalizers
GC.IFF MET12-J. Do not use finalizers
GC.NCF MET12-J. Do not use finalizers
GLOBAL.ACD DCL00-J. Prevent class initialization cycles
HIBERNATE.LHII FIO13-J. Do not log sensitive information outside a trust boundary
INTER.CCL STR02-J. Specify an appropriate locale when comparing locale-dependent data
INTER.COS STR00-J. Don't form strings containing partial characters from variable-width encodings
INTER.CTLC STR02-J. Specify an appropriate locale when comparing locale-dependent data
OOP.AHSM MET07-J. Never declare a class method that hides a method declared in a superclass or superinterface
OOP.MFP MET12-J. Do not use finalizers
OOP.MUCOP OBJ04-J. Provide mutable classes with copy functionality to safely allow passing instances to untrusted code
OOP.MUCOP OBJ05-J. Do not return references to private mutable class members
OOP.MUCOP OBJ06-J. Defensively copy mutable inputs and mutable internal components
let external processes block on IO buffers
CERT.FIO08.CRRV FIO08-J. Distinguish between characters or bytes read from a stream and -1
CERT.FIO09.ARGWRITE FIO09-J. Do not rely on the write() method to output integers outside the range 0 to 255
CERT.FIO12.PMRWLED FIO12-J. Provide methods to read and write little-endian data
CERT.FIO13.CONSEN FIO13-J. Do not log sensitive information outside a trust boundary
CERT.FIO13.LHII FIO13-J. Do not log sensitive information outside a trust boundary
CERT.FIO13.PEO FIO13-J. Do not log sensitive information outside a trust boundary
CERT.FIO13.SENS FIO13-J. Do not log sensitive information outside a trust boundary
CERT.FIO14.CCR FIO14-J. Perform proper cleanup at program termination
CERT.FIO14.CIO FIO14-J. Perform proper cleanup at program termination
CERT.FIO14.CRWD FIO14-J. Perform proper cleanup at program termination
CERT.FIO16.CDBV FIO16-J. Canonicalize path names before validating them
CERT.IDS00.TDSQL IDS00-J. Prevent SQL injection
CERT.IDS03.TDLOG IDS03-J. Do not log unsanitized user input
CERT.IDS06.VAFS IDS06-J. Exclude unsanitized user input from format strings
CERT.IDS07.EXEC IDS07-J. Sanitize untrusted data passed to the Runtime.exec() method
CERT.IDS11.VPPD IDS11-J. Perform any string modifications before validation
CERT.IDS16.TDXML IDS16-J. Prevent XML Injection
CERT.JNI00.NATIW JNI00-J. Define wrappers around native methods
CERT.LCK00.SOPF LCK00-J. Use private final lock objects to synchronize classes that may interact with untrusted code
CERT.LCK01.SCS LCK01-J. Do not synchronize on objects that may be reused
CERT.LCK02.SGC LCK02-J. Do not synchronize on the class object returned by getClass()
CERT.LCK04.SOBC LCK04-J. Do not synchronize on a collection view if the backing collection is accessible
CERT.LCK05.IASF LCK05-J. Synchronize access to static fields that can be modified by untrusted code
CERT.LCK06.INSTLOCK LCK06-J. Do not use an instance lock to protect shared static data
CERT.LCK07.LORD LCK07-J. Avoid deadlock by requesting and releasing locks in the same order
CERT.LCK08.LOCK LCK08-J. Ensure actively held locks are released on exceptional conditions
CERT.LCK08.RLF LCK08-J. Ensure actively held locks are released on exceptional conditions
CERT.LCK09.TSHL LCK09-J. Do not perform operations that can block while holding a lock
CERT.LCK09.TSHL2 LCK09-J. Do not perform operations that can block while holding a lock
CERT.LCK10.DCL LCK10-J. Use a correct form of the double-checked locking idiom
CERT.MET02.DPRAPI MET02-J. Do not use deprecated or obsolete classes or methods
CERT.MET02.THRD MET02-J. Do not use deprecated or obsolete classes or methods
CERT.MET04 OOP.OPM MET04-J. Do not increase the accessibility of overridden or hidden methods
OPT CERT.MET06.CCR CLONE FIO04 MET06-J. Release resources when they are no longer needed
OPT.CCR FIO14-J. Perform proper cleanup at program termination
OPT.CIO FIO04-J. Release resources when they are no longer needed
OPT.CIO FIO14-J. Perform proper cleanup at program termination
OPT.CRWD FIO14-J. Perform proper cleanup at program termination
Do not invoke overridable methods in clone()
CERT.MET07.AHSM MET07-J. Never declare a class method that hides a method declared in a superclass or superinterface
CERT.MET08.EQREFL MET08-J. Preserve the equality contract when overriding the equals() method
CERT.MET09.OVERRIDE MET09-J. Classes that define an equals() method must also define a hashCode() method
CERT.MET11.IKICO MET11-J. Ensure that keys used in comparison operations are immutable
CERT.MET12.EF MET12 PB-NUM-FPLI NUM09-J. Do not use floating-point variables as loop counters finalizers
CERT.MET12.FCF MET12 PB-RE-NCMD EXP01-J. Do not use a null in a case where an object is required finalizers
CERT.MET12.FCSF MET12 PB.API.DPRAPI MET02-J. Do not use deprecated or obsolete classes or methods finalizers
CERT.MET12.FM PB.API.OF MET12-J. Do not use finalizers
PB CERT.APIMET12.VAFS IFF IDS06 MET12-J. Exclude unsanitized user input from format strings Do not use finalizers
CERT.MET12.MFP MET12 PB.CUB.ARCF ERR04-J. Do not complete abruptly from a finally block PB.CUB.ARCF use finalizers
CERT.MET12.MNDF MET12 ERR05-J. Do not let checked exceptions escape from a finally block PB.CUB.ATSF use finalizers
CERT.MET12.NCF MET12 ERR04-J. Do not complete abruptly from a finally block PB.CUB.ATSF use finalizers
CERT.MET12.OF MET12 ERR05-J. Do not let checked exceptions escape from a finally block use finalizers
CERT.MSC01.EB MSC01 PB.CUB.RMO OBJ10-J. Do not use public static nonfinal fields
PB.CUB.UEIC EXP02-J. Do not use the Object.equals() method to compare two arrays
PB.CUB.UEIC EXP03-J. Do not use the equality operators when comparing values of boxed primitives
PB.IKICO MET11-J. Ensure that keys used in comparison operations are immutable
PB.LOGIC.CRRV FIO08-J. Distinguish between characters or bytes read from a stream and -1
PB.NUM.AIC NUM13-J. Avoid loss of precision when converting primitive integers to floating-point
PB.NUM.BBDCC NUM10-J. Do not construct BigDecimal objects from floating-point literals
an empty infinite loop
CERT.MSC03.AHCA MSC03-J. Never hard code sensitive information
CERT.MSC03.HCCK MSC03-J. Never hard code sensitive information
CERT.MSC03.HCCS MSC03-J. Never hard code sensitive information
CERT.MSC04.LEAKS MSC04-J. Do not leak memory
CERT.MSC06.ITMOD MSC06-J. Do not modify the underlying collection when an iteration is in progress
CERT.MSC07.ILI MSC07-J. Prevent multiple instantiations of singleton objects
CERT.NUM00 PB.NUM.BSA NUM00-J. Detect or prevent integer overflow
PB CERT.NUMNUM00.CACO NUM00-J. Detect or prevent integer overflow
PB.NUM.CLP NUM12-J. Ensure conversions of numeric types to narrower types do not result in lost or misinterpreted data
PB.NUM.ICO NUM00-J. Detect or prevent integer overflow
PB.NUM.NAN NUM07-J. Do not attempt comparisons with NaN
CERT.NUM00.ICO NUM00-J. Detect or prevent integer overflow
CERT.NUM01.BADSHIFT NUM01-J. Do not perform bitwise and arithmetic operations on the same data
CERT.NUM01.NCBAV NUM01-J. Do not perform bitwise and arithmetic operations on the same data
CERT.NUM02.ZERO NUM02-J. Ensure that division and remainder operations do not result in divide-by-zero errors
CERT.NUM04 PB.NUM.UBD NUM04-J. Do not use floating-point numbers if precise computation is required
PB CERT.TYPONUM07.AECB NAN EXP00 NUM07-J. Do not ignore values returned by methods
PB.TYPO.EB MSC01-J. Do not use an empty infinite loop
attempt comparisons with NaN
CERT.NUM08.FPEXC NUM08-J. Check floating-point inputs for exceptional values
CERT.NUM09.FPLI NUM09 PB.USC.NASSIG EXP00-J. Do not ignore values returned by methods use floating-point variables as loop counters
CERT.NUM10.BBDCC NUM10 PORT.ENV ENV02-J. Do not trust the values of environment variables
PORT.EXEC IDS07-J. Sanitize untrusted data passed to the Runtime.exec() method
PORT.EXEC FIO07-J. Do not let external processes block on IO buffers
SECURITY.BV.ACL SEC03-J. Do not load trusted classes after allowing untrusted code to load arbitrary classes
SECURITY.EAB.CMP OBJ09-J. Compare classes and not class names
construct BigDecimal objects from floating-point literals
CERT.NUM12.CLP NUM12-J. Ensure conversions of numeric types to narrower types do not result in lost or misinterpreted data
CERT.NUM13.AIC NUM13-J. Avoid loss of precision when converting primitive integers to floating-point
CERT.OBJ03.AGBPT OBJ03-J. Prevent heap pollution
CERT.OBJ04.CLONE SECURITY.EAB.CPCL OBJ04-J. Provide mutable classes with copy functionality to safely allow passing instances to untrusted code
SECURITY CERT.EABOBJ04.CPCL OBJ05 OBJ04-J. Do not return references to private mutable class members
SECURITY.EAB.CPCL OBJ06-J. Defensively copy mutable inputs and mutable internal components
SECURITY.EAB.JVM ERR09-J. Do not allow untrusted code to terminate the JVM
Provide mutable classes with copy functionality to safely allow passing instances to untrusted code
CERT.OBJ04.MPT OBJ04-J. Provide mutable classes with copy functionality to safely allow passing instances to untrusted code
CERT.OBJ04.MUCOP OBJ04-J. Provide mutable classes with copy functionality to safely allow passing instances to untrusted code
CERT.OBJ04.SMO SECURITY.EAB.MPT OBJ04-J. Provide mutable classes with copy functionality to safely allow passing instances to untrusted code
SECURITY CERT.EABOBJ05.MPT CPCL OBJ05-J. Do not return references to private mutable class members
SECURITY CERT.EABOBJ05.MPT OBJ06 OBJ05-J. Defensively copy mutable inputs and mutable internal components
SECURITY.EAB.SMO OBJ04-J. Provide mutable classes with copy functionality to safely allow passing instances to untrusted code
Do not return references to private mutable class members
CERT.OBJ05.MUCOP OBJ05-J. Do not return references to private mutable class members
CERT.OBJ05 SECURITY.EAB.SMO OBJ05-J. Do not return references to private mutable class members
SECURITY CERT.OBJ06.EAB.SMO MPT OBJ06-J. Defensively copy mutable inputs and mutable internal components
SECURITY CERT.EABOBJ06.SPFF CPCL OBJ10 OBJ06-J. Do not use public static nonfinal fields
SECURITY.ESD.ACW ERR01-J. Do not allow exceptions to expose sensitive information
SECURITY.ESD.CONSEN FIO13-J. Do not log sensitive information outside a trust boundary
SECURITY.ESD.PEO FIO13-J. Do not log sensitive information outside a trust boundary
SECURITY.ESD.SIF SER03-J. Do not serialize unencrypted sensitive data
SECURITY.IBA.ATF FIO03-J. Remove temporary files before termination
SECURITY.IBA.CDBV FIO16-J. Canonicalize path names before validating them
SECURITY.IBA.NATIW JNI00-J. Define wrappers around native methods
SECURITY.UEHL.LGE ERR00-J. Do not suppress or ignore checked exceptions
SECURITY.WSC.ACPST ERR01-J. Do not allow exceptions to expose sensitive information
SECURITY.WSC.AHCA MSC03-J. Never hard code sensitive information
SECURITY.WSC.CLONE OBJ04-J. Provide mutable classes with copy functionality to safely allow passing instances to untrusted code
SECURITY.WSC.CLONE MET06-J. Do not invoke overridable methods in clone()
SECURITY.WSC.HCCK MSC03-J. Never hard code sensitive information
SECURITY.WSC.HCCS MSC03-J. Never hard code sensitive information
SECURITY.WSC.MCNC OBJ07-J. Sensitive classes must not let themselves be copied
SECURITY.WSC.SCF SEC04-J. Protect sensitive operations with security manager checks
Defensively copy mutable inputs and mutable internal components
CERT.OBJ06.MUCOP OBJ06-J. Defensively copy mutable inputs and mutable internal components
CERT.OBJ06.SMO OBJ06-J. Defensively copy mutable inputs and mutable internal components
CERT.OBJ07.MCNC OBJ07-J. Sensitive classes must not let themselves be copied
CERT.OBJ08.INNER OBJ08-J. Do not expose private members of an outer class from within a nested class
CERT.OBJ09.CMP OBJ09-J. Compare classes and not class names
CERT.OBJ10.RMO OBJ10-J. Do not use public static nonfinal fields
CERT.OBJ10.SPFF OBJ10-J. Do not use public static nonfinal fields
CERT.OBJ11.EPNFC OBJ11-J. Be wary of letting constructors throw exceptions
CERT.SEC01.PRIVIL SEC01-J. Do not allow tainted variables in privileged blocks
CERT.SEC02.TDRFL SEC02-J. Do not base security checks on untrusted sources
CERT.SEC03.ACL SEC03-J. Do not load trusted classes after allowing untrusted code to load arbitrary classes
CERT.SEC04.SCF SEC04-J. Protect sensitive operations with security manager checks
CERT.SEC05.ARM SEC05-J. Do not use reflection to increase accessibility of classes, methods, or fields
CERT.SER00.DUID SER00-J. Enable serialization compatibility during class evolution
CERT.SER01.ROWO SER01-J. Do not deviate from the proper signatures of serialization methods
CERT.SER03.SIF SER03-J. Do not serialize unencrypted sensitive data
CERT.SER04 SECURITY.WSC.SCSER SER04-J. Do not allow serialization and deserialization to bypass the security manager
SECURITY CERT.WSCSER07.SRD RRSC MSC02 SER07-J. Generate strong random numbers
SECURITY.WSC.USC MSC00-J. Use SSLSocket rather than Socket for secure data exchange
SERIAL.DUID SER00-J. Enable serialization compatibility during class evolution
Do not use the default serialized form for classes with implementation-defined invariants
CERT.SER09.VREADOBJ SER09-J. Do not invoke overridable methods from the readObject() method
CERT.SER11. SERIAL.IRX SER11-J. Prevent overwriting of externalizable objects
SERIAL CERT.STR00.ROWO COS SER01 STR00-J. Do not deviate from the proper signatures of serialization methods SERIAL.RRSC Don't form strings containing partial characters from variable-width encodings
CERT.STR01.NCUCP STR01 SER07-J. Do not use the default serialized form for classes with implementation-defined invariants
SERVLET.CETS ERR01-J. Do not allow exceptions to expose sensitive information
TRS.ANF THI02-J. Notify all waiting threads rather than a single thread
assume that a Java char fully represents a Unicode code point
CERT.STR02.CCL STR02-J. Specify an appropriate locale when comparing locale-dependent data
CERT.STR02.CTLC STR02-J. Specify an appropriate locale when comparing locale-dependent data
CERT.THI00.IRUN THI00 TRS.AUTG THI01-J. Do not invoke ThreadGroup methods
TRS.CSTART TSM02-J. Do not use background threads during class initialization
Thread.run()
CERT.THI01.AUTG THI01 TRS.CTRE TSM01-J. Do not let the this reference escape during object construction
TRS.DCL LCK10-J. Use a correct form of the double-checked locking idiom
TRS.IASF LCK05-J. Synchronize access to static fields that can be modified by untrusted code
TRS.ILI MSC07-J. Prevent multiple instantiations of singleton objects
invoke ThreadGroup methods
CERT.THI02.ANF THI02-J. Notify all waiting threads rather than a single thread
CERT.THI03.UWIL THI03-J. Always invoke wait() and await() methods inside a loop
CERT.THI05.THRD THI05 TRS.IRUN THI00-J. Do not invoke use Thread.runstop() to terminate threads
CERT.TPS00 TRS.ISTART TPS00-J. Use thread pools to enable graceful degradation of service during traffic bursts
TRS.LORD VNA00-J. Ensure visibility when accessing shared primitive variables
TRS.LORD LCK07-J. Avoid deadlock by requesting and releasing locks in the same order
TRS.MRAV VNA00-J. Ensure visibility when accessing shared primitive variables
TRS.MRAV VNA02-J. Ensure that compound operations on shared variables are atomic
TRS.MRAV VNA03-J. Do not assume that a group of calls to independently atomic methods is atomic
TRS. CERT.TSM00.OSNS TSM00-J. Do not override thread-safe methods with methods that are not thread-safe
TRS CERT.TSM01.RLF CTRE LCK08 TSM01-J. Ensure actively held locks are released on exceptional conditions Do not let the this reference escape during object construction
CERT.TSM02.CSTART TSM02 TRS.SCS LCK01-J. Do not synchronize on objects that may be reused
TRS.SGC LCK02-J. Do not synchronize on the class object returned by getClass()
TRS.SOBC LCK04-J. Do not synchronize on a collection view if the backing collection is accessible
TRS.SOPF LCK00-J. Use private final lock objects to synchronize classes that may interact with untrusted code
use background threads during class initialization
CERT.VNA00.LORD VNA00-J. Ensure visibility when accessing shared primitive variables
CERT.VNA00.MRAV VNA00-J. Ensure visibility when accessing shared primitive variables
CERT.VNA02.MRAV VNA02-J. Ensure that compound operations on shared variables are atomic
CERT.VNA02 TRS.SSUG VNA02-J. Ensure that compound operations on shared variables are atomic
TRS CERT.VNA03.SSUG MRAV VNA03-J. Do not assume that a group of calls to independently atomic methods is atomic
TRS.THRD MET02-J. Do not use deprecated or obsolete classes or methods
CERT.VNA03.SSUG VNA03 TRS.THRD THI05-J. Do not use Thread.stop() to terminate threads
TRS.TSHL LCK09-J. Do not perform operations that can block while holding a lock
TRS.UWIL THI03-J. Always invoke wait() and await() methods inside a loop
UC.EF MET12-J. Do not use finalizers
UC.FCSF MET12-J. Do not use finalizers
assume that a group of calls to independently atomic methods is atomic
CRT.MSC02.SRD MSC02-J. Generate strong random numbers
SECURITY.WSC.USC MSC00-J. Use SSLSocket rather than Socket for secure data exchange UC.UCATCH ERR00-J. Do not suppress or ignore checked exceptions