javaee / jaxb-v2

Other
210 stars 100 forks source link

Documented exception thrown is incorrect for javax.xml.bind.DatatypeConverter#print(Object) methods #1195

Open LanceAndersen opened 6 years ago

LanceAndersen commented 6 years ago

Previously tracked via: https://bugs.openjdk.java.net/browse/JDK-8152531

A DESCRIPTION OF THE PROBLEM : The documentation for the javax.xml.bind.DatatypeConverter#print(Object) methods (such as printDate, printDateTime and printDecimal) state an IllegalArgumentException is thrown if the input parameter is null. In fact, a NullPointerException is thrown as shown in the Junit sample below:

@Test 
public void testJDate() { 

    this.exception.expect(IllegalArgumentException.class); 
    javax.xml.bind.DatatypeConverter.printDecimal(null); 

} 

java.lang.AssertionError: Expected: an instance of java.lang.IllegalArgumentException but: is a java.lang.NullPointerException Stacktrace was: java.lang.NullPointerException at javax.xml.bind.DatatypeConverterImpl._printDecimal(DatatypeConverterImpl.java:546) at javax.xml.bind.DatatypeConverterImpl.printDecimal(DatatypeConverterImpl.java:542) at javax.xml.bind.DatatypeConverter.printDecimal(DatatypeConverter.java:514) ...

Of course, if it really SHOULD be an IllegalArgumentException, someone might want to open a jre bug report.

There is minimal impact as it is now unclear what should be thrown by a custom converter method.

URL OF FAULTY DOCUMENTATION : http://docs.oracle.com/javase/8/docs/api/javax/xml/bind/DatatypeConverter.html