JAVA.FINAL.STATIC.VAR
Use of nonfinal static variable
Vulnerability and risk
The JLS does not mandate complete initialization and safe publication of a variable even if a static initializer is used.
Mitigation and prevention
Ensure safe publication by declaring the static variable final.
Vulnerable code example
Copy
package com.klocwork;
public class JAVA_FINAL_STATIC_VAR_POSITIVE {
static String out = "hello world";
public static void main(String args[]) {
System.out.println(out);
}
}
Fixed code example
Copy
package com.klocwork;
public class JAVA_FINAL_STATIC_VAR_NEGATIVE {
final static String out = "hello world";
public static void main(String args[]) {
System.out.println(out);
}
}