StringBuffer sb=null;
// Some more logic that conditionally assigns value to the StringBuffer
// Prints Value=null
System.out.println("Value="+sb);
// Throws NullPointerException
System.out.println("Value=" + sb != null ? sb.toString() : "Null");
The fix for this issue is encompassing the ternary operator in brackets:
// Works fine
System.out.println("Value=" + (sb != null ? sb.toString() : "Null"));
How is this possible?