Ich bin Debuggen einer Anwendung, die entworfen wurde, um einen Fall von foo
, der null
ist. Beim Überprüfen eines Protokolls aus der Produktion wurde jedoch ein NullPointerException
ausgelöst, der versuchte, auf eine Methode von foo
zuzugreifen, nachdem sie ordnungsgemäß verarbeitet werden sollte.Unter keinen Umständen kann `foo == null` falsch sein, wenn` foo` tatsächlich null ist?
es sieht aus wie diese
if (foo == null) {
throw new GracefulException();
}
Bar bar = foo.getBar();
Also mit diesem Code an Ort und Stelle, ein NullPointerException
in der Produktion aufgetreten ist, wenn foo.getBar()
Aufruf.
Meine Frage ist einfach das: Hat jemand jemals von funky Verhalten gehört, wie dies geschieht oder sogar möglich ist? Und wenn ja, was könnte das verursachen?
Nein. Dies ist nicht möglich. Mein Geld steht auf einem schlecht geschriebenen "Versuch ... Fang". –
Können Sie eine vollständige Stapelverfolgung hinzufügen? – NilsH
@NilsH Der Code, den ich in meiner Frage geschrieben habe, ist ein stark abstrahiertes Beispiel für den tatsächlichen Produktionscode. Ein Stacktrace wäre nutzlos, wenn ich den Beispielcode nicht so weit verbessern würde, dass er den tatsächlichen Code widerspiegelt, und die Zeilennummern geändert und vertrauliche Informationen aus dem Stacktrace entfernt hat. – zero01alpha