Warum verwendet die NPE die statische Methode von DatatypeConverter?

9

Ich habe diesen kurzen Code zu lange angeguckt und kann nicht für das Leben von mir sehen, wie er in Zeile 6 ein NullPointerException werfen kann. Warum die NPE?

%Vor%

Ausgabe

%Vor%

Aktualisieren

Während viele Fehlerberichte auf eine 1.7 Variante verweisen, war ich erstaunt zu sehen, dass Eclipse so konfiguriert ist, dass 1.6.0_32 & amp; TextPad hat eine Version von 1.6.0-b105 gefunden (habe nicht einmal gemerkt, dass das installiert wurde!).

Beide JREs schlagen mit dieser NPE fehl.

    
Andrew Thompson 19.09.2012, 15:47
quelle

3 Antworten

2

Es scheint, als ob es jetzt in JAXB Fehler in JDK7 gibt, wie dieses Problem auf Camel zeigt:

Ссылка

, die letztendlich auf dieses Problem verweist Ссылка im JAXB-Projekt auf java.net.

>

Ich bin mir nicht ganz sicher, ob Sie auf dieselbe Sache stoßen oder nicht, aber versuchen Sie vielleicht, JDK6 mit der neuesten JAXB-Version zu verwenden und sehen Sie, ob die gleiche NPE passiert oder nicht.

    
whaley 19.09.2012, 15:54
quelle
2

Ohne die Besonderheiten der Umgebung kann ich mir nicht sicher sein, dass dies der Fall ist, aber wenn Sie JAXB RI verwenden, ist es möglich, dass Sie auf das von diesem JAXB-Fehler beschriebene Problem stoßen: Ссылка .

Während der Fehler das Problem, das Sie hatten, nicht spezifisch behandelt (es hängt mit der parseDate -Methode zusammen), kann die Grundursache die gleiche sein. Es wurde in der Version 2.2.1 von JAXB entdeckt, war aber möglicherweise schon vorher in 2.1.x-Versionen vorhanden, und JAXB 2.1.1 scheint die neueste in 1.6 integrierte Version zu sein (in 1.6u14 integriert).

Das Problem besagt, dass es mit JAXB 2.2.4 gelöst wurde, das in 1.7 integriert wurde.

Zusätzliche Anmerkung - Ein verwandtes Problem wurde in Bezug auf eine NPE für parseBoolean dokumentiert, wenn Sie versuchen, mit 1.6u31 zu verwenden, was von Interesse sein könnte (obwohl wenig Hilfe, die Beschreibung ist sehr kurz): < a href="http://java.net/jira/browse/JAXB-902"> Ссылка . Dies deutet darauf hin, dass dies immer noch ein andauerndes Problem sein kann, abhängig davon, ob Sie RI oder eine andere JAXB-Implementierung verwenden.

    
Bionic_Geek 19.09.2012 18:26
quelle
1
%Vor%
  

JAXB-Provider müssen die setDatatypeConverter-API unter aufrufen   Irgendwann vor dem ersten Marshall oder der unmarshalen Operation (vielleicht   während des Aufrufs von JAXBContext.newInstance). Dieser Schritt ist notwendig   Konfigurieren Sie den Konverter, der zum Drucken und Drucken verwendet werden soll   Analysefunktionalität

Versuchen Sie, den Konverter zuerst einzustellen

%Vor%     
Hitham S. AlQadheeb 19.09.2012 15:54
quelle