CodeCheck Documentation
CodeCheck Documentation - Java

Language: Java

Check IDCheck NameSupportedSeverity
AC_00No Control Code CharactersYes
AC_01No Direct or Indirect RecursionYes
AC_HIS_04Cyclomatic Complexity (v(G))Yes
AC_HIS_13Statements Changed (SCHG)Yes
AC_HIS_14Statements Deleted (SDEL)Yes
AC_HIS_15New Statements (SNEW)Yes
AC_HIS_16Stability Index (S)Yes
DCL00-JPrevent class initialization cyclesYesLow
DCL01-JDo not reuse public identifiers from the Java Standard LibraryNoLow
DCL02-JDo not modify the collection's elements during an enhanced for statementYesLow
ENV00-JDo not sign code that performs only unprivileged operationsNoHigh
ENV01-JPlace all security-sensitive code in a single JAR and sign and seal itNoHigh
ENV02-JDo not trust the values of environment variablesYesLow
ENV03-JDo not grant dangerous combinations of permissionsYesHigh
ENV04-JDo not disable bytecode verificationNoHigh
ENV05-JDo not deploy an application that can be remotely monitoredNoHigh
ENV06-JProduction code must not contain debugging entry pointsYesHigh
ERR00-JDo not suppress or ignore checked exceptionsYesLow
ERR01-JDo not allow exceptions to expose sensitive informationYesMedium
ERR02-JPrevent exceptions while logging dataYesMedium
ERR03-JRestore prior object state on method failureYesLow
ERR04-JDo not complete abruptly from a finally blockYesLow
ERR05-JDo not let checked exceptions escape from a finally blockYesLow
ERR06-JDo not throw undeclared checked exceptionsYesLow
ERR07-JDo not throw RuntimeException, Exception, or ThrowableYesLow
ERR08-JDo not catch NullPointerException or any of its ancestorsYesMedium
ERR09-JDo not allow untrusted code to terminate the JVMYesLow
EXP00-JDo not ignore values returned by methods.YesMedium
EXP01-JDo not use a null in a case where an object is requiredNoLow
EXP02-JDo not use the Object.equals() method to compare two arrays.YesLow
EXP03-JDo not use the equality operators when comparing values of boxed primitivesYesLow
EXP04-JDo not pass arguments to certain Java Collections Framework methods that are a different type than the collection parameter typeYesLow
EXP05-JDo not follow a write by a subsequent write or read of the same object within an expressionYesLow
EXP06-JExpressions used in assertions must not produce side effectsYesLow
FIO00-JDo not operate on files in shared directoriesYesMedium
FIO01-JCreate files with appropriate access permissionsYesMedium
FIO02-JDetect and handle file-related errorsYesMedium
FIO03-JRemove temporary files before terminationYesMedium
FIO04-JRelease resources when they are no longer neededYesLow
FIO05-JDo not expose buffers or their backing arrays methods to untrusted codeYesMedium
FIO06-JDo not create multiple buffered wrappers on a single byte or character streamNoLow
FIO07-JDo not let external processes block on IO buffersNoLow
FIO08-JDistinguish between characters or bytes read from a stream and -1NoHigh
FIO09-JDo not rely on the write() method to output integers outside the range 0 to 255YesLow
FIO10-JEnsure the array is filled when using read() to fill an arrayYesLow
FIO12-JProvide methods to read and write little-endian dataNoLow
FIO13-JDo not log sensitive information outside a trust boundaryYesMedium
FIO14-JPerform proper cleanup at program terminationYesMedium
FIO15-JDo not reset a servlet's output stream after committing itNoLow
FIO16-JCanonicalize path names before validating themNoMedium
HIS_033. Number of Goto Statements(GOTO)Yes
HIS_044. Cyclomatic Complexity (v(G))Yes
HIS_1313. Statements Changed (SCHG)Yes
HIS_1414. Statements Deleted (SDEL)Yes
HIS_1515. New Statements (SNEW)Yes
HIS_1616. Stability Index (S)Yes
IDS00-JPrevent SQL InjectionYesHigh
IDS01-JNormalize strings before validating themYesHigh
IDS03-JDo not log unsanitized user inputNoMedium
IDS04-JSafely extract files from ZipInputStreamYesLow
IDS06-JExclude unsanitized user input from format stringsYesMedium
IDS07-JSanitize untrusted data passed to the Runtime.exec() methodNoHigh
IDS08-JSanitize untrusted data included in a regular expressionYesMedium
IDS11-JPerform any string modifications before validationYesHigh
IDS14-JDo not trust the contents of hidden form fieldsNoHigh
IDS16-JPrevent XML InjectionYesHigh
IDS17-JPrevent XML External Entity AttacksNoMedium
JAVA_01All fixed values will be defined final.Yes
JAVA_02Unused Instance Variables.Yes
JAVA_03Single exit point at endYes
JAVA_04Defined methods shall be called at least once.Yes
JAVA_05Unused Local VariablesYes
JAVA_06Package names shall be in all lowercase alphabetic characters and integersYes
JAVA_07If multiple classes are imported, the list shall be imported alphabetically Yes
JAVA_08Each package group shall be separated with a newline Yes
JAVA_09Each Java class shall be assigned to a named package Yes
JAVA_10Use package names instead of prefixes on class identifiers Yes
JAVA_11A class shall be declared an interface if no method of the class is implemented. Yes
JAVA_12If a constructor catches an exception that causes the failure of the object, that exception shall be thrown. Yes
JAVA_13Order class definitions by scope Yes
JAVA_14Capitalize classes and interfaces Yes
JAVA_15Method names should be camelCase Yes
JAVA_16Prepend method names with "get" if they return data member values Yes
JAVA_17Prepend method names with "set" if they assign data member values Yes
JAVA_18Any method that tests the truth or falsity of a condition shall be prepended with a boolean expressionYes
JAVA_19A method definition statement and member (nested) class definition statement shall begin at the standard indentation relative to the enclosing class definition statement.Yes
JAVA_20The last call of the finalizer shall be to super.finalize(), unless Object is the immediate superclassYes
JAVA_21Finalizers shall catch and manage their own exceptions as well as any propagated exceptions that may be thrown from functions called by the finalizer.Yes
JAVA_22A variable’s use shall not be redefined within a method.Yes
JAVA_23Only one variable shall be specified for every declaration key word.Yes
JAVA_24Each new block shall be indented one increment further than its parent block.Yes
JAVA_25Each statement shall be indented to the level of its block.Yes
JAVA_26There shall be at most one statement per line.Yes
JAVA_27A wrapped line shall be indented one increment further than its originating line.Yes
JAVA_28A new instance of java.lang.Exception shall not be thrown. Yes
JAVA_29Braces shall be used for all control structures, even if there is only one statement. Yes
JAVA_30White space before a comma or semicolon shall not be used.Yes
JAVA_31The loop control variable shall not be modified in the body of a for loop.Yes
JAVA_32The last choice of a switch or case statement shall end with a break statement.Yes
JAVA_33Statements under case labels shall be indented one level.Yes
JAVA_34In a switch statement, when a default case is presented, it shall be the last case.Yes
JAVA_35For a do-while loop, the ending brace shall be on the same line as the while.Yes
JAVA_36Ternary operators shall not be nested inside other ternary operators. Yes
JAVA_37Calculations that resolve to the same value shall not be performed inside a loop. Yes
JAVA_38 For the control structures the terminating brace shall appear on a separate line at the same indentation as the initiating keyword. Yes
JAVA_39White space shall not be used: between the name of an array and open bracket that introduces its index (e.g., array[i]), or between unary operators and the objects they operate on (e.g., -1). Yes
JAVA_40Spaces shall be placed after commas.Yes
JAVA_41Any method that returns the object converted to another type shall be prepended with the word "to" (e.g., c.toString()). Yes
JAVA_42The end of a closing brace shall be at the same indentation as the blocks' declaring line. Yes
JAVA_43Method declarations shall have at least one blank line between them to improve readability. Yes
JAVA_44Spaces shall be placed around all binary operators. Yes
JAVA_DCL00Prevent class initialization cyclesYes
JAVA_DCL02Do not modify the collection's elements during an enhanced for statementYes
JAVA_ENV02Do not trust the values of environment variablesYes
JAVA_ENV03Do not grant dangerous combinations of permissionsYes
JAVA_ENV06Production code must not contain debugging entry pointsYes
JAVA_ERR00Do not suppress or ignore checked exceptionsYes
JAVA_ERR01Do not allow exceptions to expose sensitive informationYes
JAVA_ERR02Prevent exceptions while logging dataYes
JAVA_ERR03Restore prior object state on method failureYes
JAVA_ERR04Do not complete abruptly from a finally blockYes
JAVA_ERR05Do not let checked exceptions escape from a finally blockYes
JAVA_ERR06Do not throw undeclared checked exceptionsYes
JAVA_ERR07Do not throw RuntimeException, Exception, or ThrowableYes
JAVA_ERR08Do not catch NullPointerException or any of its ancestorsYes
JAVA_ERR09Do not allow untrusted code to terminate the JVMYes
JAVA_EXP00Do not ignore values returned by methods.Yes
JAVA_EXP02Do not use the Object.equals() method to compare two arrays.Yes
JAVA_EXP03Do not use the equality operators when comparing values of boxed primitivesYes
JAVA_EXP04Do not pass arguments to certain Java Collections Framework methods that are a different type than the collection parameter typeYes
JAVA_EXP05Do not follow a write by a subsequent write or read of the same object within an expressionYes
JAVA_EXP06Expressions used in assertions must not produce side effectsYes
JAVA_FIO00Do not operate on files in shared directoriesYes
JAVA_FIO01Create files with appropriate access permissionsYes
JAVA_FIO02Detect and handle file-related errorsYes
JAVA_FIO03Remove temporary files before terminationYes
JAVA_FIO04Release resources when they are no longer neededYes
JAVA_FIO05Do not expose buffers or their backing arrays methods to untrusted codeYes
JAVA_FIO09Do not rely on the write() method to output integers outside the range 0 to 255Yes
JAVA_FIO10Ensure the array is filled when using read() to fill an arrayYes
JAVA_FIO13Do not log sensitive information outside a trust boundaryYes
JAVA_FIO14Perform proper cleanup at program terminationYes
JAVA_IDS00Prevent SQL InjectionYes
JAVA_IDS01Normalize strings before validating themYes
JAVA_IDS04Safely extract files from ZipInputStreamYes
JAVA_IDS06Exclude unsanitized user input from format stringsYes
JAVA_IDS08Sanitize untrusted data included in a regular expressionYes
JAVA_IDS11Perform any string modifications before validationYes
JAVA_IDS16Prevent XML InjectionYes
JAVA_JNI00Define wrappers around native methodsYes
JAVA_LCK00Use private final lock objects to synchronize classes that may interact with untrusted codeYes
JAVA_LCK01Do not synchronize on objects that may be reusedYes
JAVA_LCK02Do not synchronize on the class object returned by getClass()Yes
JAVA_LCK04Do not synchronize on a collection view if the backing collection is accessibleYes
JAVA_LCK05Synchronize access to static fields that can be modified by untrusted codeYes
JAVA_LCK06Do not use an instance lock to protect shared static dataYes
JAVA_LCK07Avoid deadlock by requesting and releasing locks in the same orderYes
JAVA_LCK08Ensure actively held locks are released on exceptional conditionsYes
JAVA_LCK09Do not perform operations that can block while holding a lockYes
JAVA_LCK10Use a correct form of the double-checked locking idiomYes
JAVA_LCK11Avoid client-side locking when using classes that do not commit to their locking strategyYes
JAVA_MET00Validate method argumentsYes
JAVA_MET01Never use assertions to validate method argumentsYes
JAVA_MET02Do not use deprecated or obsolete classes or methodsYes
JAVA_MET03Methods that perform a security check must be declared private or final.Yes
JAVA_MET04Do not increase the accessibility of overridden or hidden methodsYes
JAVA_MET05Ensure that constructors do not call overridable methodsYes
JAVA_MET06Do not invoke overridable methods in clone()Yes
JAVA_MET07Never declare a class method that hides a method declared in a superclass or superinterfaceYes
JAVA_MET08Preserve the equality contract when overriding the equals() methodYes
JAVA_MET09Classes that define an equals() method must also define a hashCode() methodYes
JAVA_MET10Follow the general contract when implementing the compareTo() methodYes
JAVA_MET11Ensure that keys used in comparison operations are immutableYes
JAVA_MET12Do not use finalizersYes
JAVA_MSC00Use SSLSocket rather than Socket for secure data exchangeYes
JAVA_MSC01Do not use an empty infinite loopYes
JAVA_MSC02Generate strong random numbersYes
JAVA_N000Naming Convention: ClassesYes
JAVA_N001Naming Convention: FilesYes
JAVA_N002Naming Convention: InterfaceYes
JAVA_N003Naming Convention: MethodsYes
JAVA_N004Naming Convention: PackagesYes
JAVA_N005Naming Convention: ParametersYes
JAVA_N006Naming Convention: VariablesYes
JAVA_N007Constants shall be in all uppercase, with underscores separating each component wordYes
JAVA_NUM00Detect or prevent integer overflowYes
JAVA_NUM02Ensure that division and remainder operations do not result in divide-by-zero errorsYes
JAVA_NUM07Do not attempt comparisons with NaNYes
JAVA_NUM09Do not use floating-point variables as loop countersYes
JAVA_NUM10Do not construct BigDecimal objects from floating-point literalsYes
JAVA_NUM11Do not compare or inspect the string representation of floating-point valuesYes
JAVA_NUM12Ensure conversions of numeric types to narrower types do not result in lost or misinterpreted dataYes
JAVA_NUM13Avoid loss of precision when converting primitive integers to floating-pointYes
JAVA_OBJ01Limit accessibility of fieldsYes
JAVA_OBJ04Provide mutable classes with copy functionality to safely allow passing instances to untrusted codeYes
JAVA_OBJ05Do not return references to private mutable class membersYes
JAVA_OBJ07Sensitive classes must not let themselves be copiedYes
JAVA_OBJ08Do not expose private members of an outer class from within a nested classYes
JAVA_OBJ09Compare classes and not class namesYes
JAVA_OBJ10Do not use public static nonfinal fieldsYes
JAVA_OBJ11Be wary of letting constructors throw exceptionsYes
JAVA_OBJ13Ensure that references to mutable objects are not exposedYes
JAVA_SEC01Do not allow tainted variables in privileged blocksYes
JAVA_SEC07Call the superclass's getPermissions() method when writing a custom class loaderYes
JAVA_SER01Do not deviate from the proper signatures of serialization methodsYes
JAVA_SER04Do not allow serialization and deserialization to bypass the security managerYes
JAVA_SER05Do not serialize instances of inner classesYes
JAVA_SER06Make defensive copies of private mutable components during deserializationYes
JAVA_SER07Do not use the default serialized form for classes with implementation-defined invariantsYes
JAVA_SER09Do not invoke overridable methods from the readObject() methodYes
JAVA_SER12Prevent deserialization of untrusted dataYes
JAVA_STR01Do not assume that a Java char fully represents a Unicode code pointYes
JAVA_STR03Do not encode noncharacter data as a stringYes
JAVA_THI00Do not invoke Thread.run()Yes
JAVA_THI01Do not invoke ThreadGroup methodsYes
JAVA_THI02Notify all waiting threads rather than a single thread.Yes
JAVA_THI03Always invoke wait() and await() methods inside a loopYes
JAVA_THI04Ensure that threads performing blocking operations can be terminatedYes
JAVA_THI05Do not use Thread.stop() to terminate threads.Yes
JAVA_TPS00Use thread pools to enable graceful degradation of service during traffic burstsYes
JAVA_TPS01Do not execute interdependent tasks in a bounded thread poolYes
JAVA_TPS02Ensure that tasks submitted to a thread pool are interruptibleYes
JAVA_TPS03Ensure that tasks executing in a thread pool do not fail silentlyYes
JAVA_TPS04Ensure ThreadLocal variables are reinitialized when using thread poolsYes
JAVA_TSM00Do not override thread-safe methods with methods that are not thread-safeYes
JAVA_TSM01Do not let the this reference escape during object constructionYes
JAVA_TSM02Do not use background threads during class initializationYes
JAVA_TSM03Do not publish partially initialized objectsYes
JAVA_VNA00Ensure visibility when accessing shared primitive variablesYes
JAVA_VNA01Ensure visibility of shared references to immutable objectsYes
JAVA_VNA02Ensure that compound operations on shared variables are atomicYes
JAVA_VNA03Do not assume that a group of calls to independently atomic methods is atomicYes
JAVA_VNA04Ensure that calls to chained methods are atomicYes
JAVA_VNA05Ensure atomicity when reading and writing 64-bit valuesYes
JNI00-JDefine wrappers around native methodsYesMedium
LCK00-JUse private final lock objects to synchronize classes that may interact with untrusted codeYesLow
LCK01-JDo not synchronize on objects that may be reusedYesMedium
LCK02-JDo not synchronize on the class object returned by getClass()YesMedium
LCK03-JDo not synchronize on the intrinsic locks of high-level concurrency objectsNoMedium
LCK04-JDo not synchronize on a collection view if the backing collection is accessibleYesLow
LCK05-JSynchronize access to static fields that can be modified by untrusted codeYesLow
LCK06-JDo not use an instance lock to protect shared static dataYesMedium
LCK07-JAvoid deadlock by requesting and releasing locks in the same orderYesLow
LCK08-JEnsure actively held locks are released on exceptional conditionsYesLow
LCK09-JDo not perform operations that can block while holding a lockYesLow
LCK10-JUse a correct form of the double-checked locking idiomYesLow
LCK11-JAvoid client-side locking when using classes that do not commit to their locking strategyYesLow
MET00-JValidate method argumentsYesHigh
MET01-JNever use assertions to validate method argumentsYesMedium
MET02-JDo not use deprecated or obsolete classes or methodsYesLow
MET03-JMethods that perform a security check must be declared private or final.YesMedium
MET04-JDo not increase the accessibility of overridden or hidden methodsYesMedium
MET05-JEnsure that constructors do not call overridable methodsYesMedium
MET06-JDo not invoke overridable methods in clone()YesMedium
MET07-JNever declare a class method that hides a method declared in a superclass or superinterfaceYesLow
MET08-JPreserve the equality contract when overriding the equals() methodYesLow
MET09-JClasses that define an equals() method must also define a hashCode() methodYesLow
MET10-JFollow the general contract when implementing the compareTo() methodYesMedium
MET11-JEnsure that keys used in comparison operations are immutableYesLow
MET12-JDo not use finalizersYesMedium
MET13-JDo not assume that reassigning method arguments modifies the calling environmentNoMedium
METRIC_00Program Unit Call CountYes
METRIC_01Program Unit Callby CountYes
METRIC_02Program Unit Comment to Code RatioYes
METRIC_03Program Unit Cyclomatic ComplexityYes
METRIC_04Program Unit Max LengthYes
METRIC_05Program Unit Max Nesting DepthYes
METRIC_06Program Unit Parameters CountYes
METRIC_07Program Unit Path CountYes
METRIC_08Program Unit Statement CountYes
METRIC_09Coupling Between Object ClassesYes
METRIC_13Maintainability IndexYes
MSC00-JUse SSLSocket rather than Socket for secure data exchangeYesMedium
MSC01-JDo not use an empty infinite loopYesLow
MSC02-JGenerate strong random numbersYesHigh
MSC03-JNever hard code sensitive informationNoHigh
MSC04-JDo not leak memoryNoLow
MSC05-JDo not exhaust heap spaceNoLow
MSC06-JDo not modify the underlying collection when an iteration is in progressNoLow
MSC07-JPrevent multiple instantiations of singleton objectsNoLow
NUM00-JDetect or prevent integer overflowYesMedium
NUM01-JDo not perform bitwise and arithmetic operations on the same dataNoMedium
NUM02-JEnsure that division and remainder operations do not result in divide-by-zero errorsYesLow
NUM03-JUse integer types that can fully represent the possible range of unsigned dataNoLow
NUM04-JDo not use floating-point numbers if precise computation is requiredNoLow
NUM07-JDo not attempt comparisons with NaNYesLow
NUM08-JCheck floating-point inputs for exceptional valuesNoLow
NUM09-JDo not use floating-point variables as loop countersYesLow
NUM10-JDo not construct BigDecimal objects from floating-point literalsYesLow
NUM11-JDo not compare or inspect the string representation of floating-point valuesYesLow
NUM12-JEnsure conversions of numeric types to narrower types do not result in lost or misinterpreted dataYesLow
NUM13-JAvoid loss of precision when converting primitive integers to floating-pointYesLow
NUM14-JUse shift operators correctlyNoLow
OBJ01-JLimit accessibility of fieldsYesMedium
OBJ02-JPreserve dependencies in subclasses when changing superclassesNoMedium
OBJ03-JPrevent heap pollutionNoLow
OBJ04-JProvide mutable classes with copy functionality to safely allow passing instances to untrusted codeYesLow
OBJ05-JDo not return references to private mutable class membersYesHigh
OBJ06-JDefensively copy mutable inputs and mutable internal components NoMedium
OBJ07-JSensitive classes must not let themselves be copiedYesMedium
OBJ08-JDo not expose private members of an outer class from within a nested classYesMedium
OBJ09-JCompare classes and not class namesYesHigh
OBJ10-JDo not use public static nonfinal fieldsYesMedium
OBJ11-JBe wary of letting constructors throw exceptionsYesHigh
OBJ13-JEnsure that references to mutable objects are not exposedYesMedium
RECOMMENDED_02Files too longYes
RECOMMENDED_04Functions Too LongYes
RECOMMENDED_06Goto StatementsYes
RECOMMENDED_10Overly Complex FunctionsYes
RECOMMENDED_12Unreachable CodeYes
RECOMMENDED_13Unused FunctionsYes
RECOMMENDED_18Unused Local VariablesYes
RECOMMENDED_19Comments Indicating Future FixesYes
RECOMMENDED_20Duplicate CodeYes
SEC00-JDo not allow privileged blocks to leak sensitive information across a trust boundaryNoMedium
SEC01-JDo not allow tainted variables in privileged blocksYesHigh
SEC02-JDo not base security checks on untrusted sourcesNoHigh
SEC03-JDo not load trusted classes after allowing untrusted code to load arbitrary classesNoHigh
SEC04-JProtect sensitive operations with security manager checksNoHigh
SEC05-JDo not use reflection to increase accessibility of classes, methods, or fieldsNoHigh
SEC06-JDo not rely on the default automatic signature verification provided by URLClassLoader and java.util.jarNoHigh
SEC07-JCall the superclass's getPermissions() method when writing a custom class loaderYesHigh
SER00-JEnable serialization compatibility during class evolutionNoLow
SER01-JDo not deviate from the proper signatures of serialization methodsYesHigh
SER02-JSign then seal objects before sending them outside a trust boundaryNoMedium
SER03-JDo not serialize unencrypted sensitive dataNoMedium
SER04-JDo not allow serialization and deserialization to bypass the security managerYesHigh
SER05-JDo not serialize instances of inner classesYesMedium
SER06-JMake defensive copies of private mutable components during deserializationYesLow
SER07-JDo not use the default serialized form for classes with implementation-defined invariantsYesMedium
SER08-JMinimize privileges before deserializing from a privileged contextNoHigh
SER09-JDo not invoke overridable methods from the readObject() methodYesLow
SER10-JAvoid memory and resource leaks during serializationNoLow
SER11-JPrevent overwriting of externalizable objectsNoLow
SER12-JPrevent deserialization of untrusted dataYesHigh
STR00-JDon't form strings containing partial characters from variable-width encodingsNoLow
STR01-JDo not assume that a Java char fully represents a Unicode code pointYesLow
STR02-JSpecify an appropriate locale when comparing locale-dependent dataNoMedium
STR03-JDo not encode noncharacter data as a stringYesLow
STR04-JUse compatible character encodings when communicating string data between JVMsNoLow
THI00-JDo not invoke Thread.run()YesLow
THI01-JDo not invoke ThreadGroup methodsYesLow
THI02-JNotify all waiting threads rather than a single thread.YesLow
THI03-JAlways invoke wait() and await() methods inside a loopYesLow
THI04-JEnsure that threads performing blocking operations can be terminatedYesLow
THI05-JDo not use Thread.stop() to terminate threads.YesLow
TPS00-JUse thread pools to enable graceful degradation of service during traffic burstsYesLow
TPS01-JDo not execute interdependent tasks in a bounded thread poolYesLow
TPS02-JEnsure that tasks submitted to a thread pool are interruptibleYesLow
TPS03-JEnsure that tasks executing in a thread pool do not fail silentlyYesLow
TPS04-JEnsure ThreadLocal variables are reinitialized when using thread poolsYesMedium
TSM00-JDo not override thread-safe methods with methods that are not thread-safeYesLow
TSM01-JDo not let the this reference escape during object constructionYesMedium
TSM02-JDo not use background threads during class initializationYesLow
TSM03-JDo not publish partially initialized objectsYesMedium
VNA00-JEnsure visibility when accessing shared primitive variablesYesMedium
VNA01-JEnsure visibility of shared references to immutable objectsYesLow
VNA02-JEnsure that compound operations on shared variables are atomicYesMedium
VNA03-JDo not assume that a group of calls to independently atomic methods is atomicYesLow
VNA04-JEnsure that calls to chained methods are atomicYesLow
VNA05-JEnsure atomicity when reading and writing 64-bit valuesYesLow