I have stared at this short code too long, and cannot for the life of me see how it can throw a NullPointerException
on line 6. Why the NPE?
class ConvertTest {
public static void main(String[] args) throws Exception {
byte[] b = "Ha".getBytes("UTF-8");
System.out.println("bytes: " + b.length);
javax.xml.bind.DatatypeConverter.printBase64Binary(b); // NPE!
}
}
bytes: 2
Exception in thread "main" java.lang.NullPointerException
at javax.xml.bind.DatatypeConverter.printBase64Binary(DatatypeConverter.java:547)
at ConvertTest.main(ConvertTest.java:6)
Press any key to continue . . .
While many of the bug reports are pointing to a 1.7 variant, I was astonished to see that Eclipse is configured to use 1.6.0_32
& TextPad has found a version of 1.6.0-b105
(didn't even realize that was installed!).
Both JREs fail with that NPE.
It seems as though there are bugs in JAXB within JDK7 right now, as evidenced by this issue on Camel:
https://issues.apache.org/jira/browse/CAMEL-4893
which ultimately links to this issue https://github.com/javaee/jaxb-v2/issues/860 in the JAXB project on java.net.
I'm not entirely sure if you are running into this same thing or not, but perhaps try using JDK6 with the latest JAXB version there and see if the same NPE happens or not.
Without the specifics of the environment I cannot be certain this is the case but if you are using JAXB RI then it's possible that you are running into the issue described by this JAXB bug: http://java.net/jira/browse/JAXB-761.
While the bug doesn't specifically address the issue you were having (it is related to the parseDate
method), the root cause may be the same. It was detected in version 2.2.1 of JAXB but may have been there beforehand in 2.1.x versions, and JAXB 2.1.1 appears to be the most recent release integrated into 1.6 (integrated in 1.6u14).
The issue states that it was resolved with JAXB 2.2.4, which was integrated into 1.7.
Additional note - a related issue was documented regarding a NPE for parseBoolean
when attempting to use with 1.6u31 which may be of interest (though little help, the description is very short): http://java.net/jira/browse/JAXB-902. This suggest this could still be an ongoing issue depending on if you are using RI or another JAXB implementation.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With