StringBuffer should throw NPE when invoked with null however with -XX:+AggressiveOpts it substitute null instead.
Here is example.
class TSB {
public static void main (String[] args) {
while(true) {
System.out.println(stringmakerBUG());
}
}
public static String stringmakerBUG() {
try {
return new StringBuffer(null).toString();
} catch (NullPointerException e) {
return "NPE";
}
}
}
run:
java -server -XX:+AggressiveOpts TSB
|