FULL PRODUCT VERSION :
java version "1.5.0_04"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_04-b05)
Java HotSpot(TM) Client VM (build 1.5.0_04-b05, mixed mode, sharing)
ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows 2000 [Version 5.00.2195]
A DESCRIPTION OF THE PROBLEM :
Puzzling NullPointerException for expressions like (s == null) ? (Long) null : Long.parseLong(s)
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
javac -sourcepath . test\JvmTest.java
java test.JvmTest
ACTUAL -
Exception in thread "main" java.lang.NullPointerException
at test.JvmTest.parseLong(JvmTest.java:5)
at test.JvmTest.main(JvmTest.java:9)
ERROR MESSAGES/STACK TRACES THAT OCCUR :
Exception in thread "main" java.lang.NullPointerException
at test.JvmTest.parseLong(JvmTest.java:5)
at test.JvmTest.main(JvmTest.java:9)
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
package test;
public class JvmTest {
public static Long parseLong(String s) {
return (s == null) ? (Long) null : Long.parseLong(s);
}
public static void main(String[] args) {
System.out.println(parseLong(null));
}
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
package test;
public class JvmTest {
public static Long parseLong(String s) {
return (s == null) ? (Long) null : new Long(Long.parseLong(s));
}
public static void main(String[] args) {
System.out.println(parseLong(null));
}
}