| Duplicate :   | |
| Relates :   | |
| Relates :   | |
| Relates :   | 
FULL PRODUCT VERSION :
java version "1.6.0-beta2"
Java(TM) SE Runtime Environment (build 1.6.0-beta2-b86)
Java HotSpot(TM) Client VM (build 1.6.0-beta2-b86, mixed mode, sharing)
ADDITIONAL OS VERSION INFORMATION :
Linux localhost 2.6.17-1mdk #1 Fri Jul 21 09:47:28 CDT 2006 i686 Intel(R) Pentium(R) 4 CPU 2.66GHz Mandriva Linux
A DESCRIPTION OF THE PROBLEM :
When a null value is passed to Float.parseFloat() or Double.parseDouble(), a NullPointerException is thrown, which is not mentioned in the API Specifications. Additionally, this exception is wrapped in a NumberFormatException if Integer.parseInt() or Long.parseLong() is used. Wouldn't it be better if these methods handle this the same way?
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
See the code below
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Integer: java.lang.NumberFormatException: null
Long: java.lang.NumberFormatException: null
Float: java.lang.NumberFormatException: null
Double java.lang.NumberFormatException: null
ACTUAL -
Integer: java.lang.NumberFormatException: null
Long: java.lang.NumberFormatException: null
Float: java.lang.NullPointerException
Double java.lang.NullPointerException
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
public class Test {
	
	
	public static void main(String[] args) {
		
		try {
			Integer.parseInt(null);
		} catch (Exception ex) {
			System.out.println(ex);
		}
		
		try {
			Long.parseLong(null);
		} catch (Exception ex) {
			System.out.println(ex);
		}
		
		try {
			Float.parseFloat(null);
		} catch (Exception ex) {
			System.out.println(ex);
		}
		
		try {
			Double.parseDouble(null);
		} catch (Exception ex) {
			System.out.println(ex);
		}
		
	} // end main
	
	
} // end class
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
We need to catch an additional NullPointerException to ensure the reliability of our code.
| 
 |