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
|