Race-Condition im Regex-Parser von OpenJDK?

Eigentlich wollte ich Jameica und Hibiscus endlich mal ausführlich mit OpenJDK testen. Aber nachdem ich 1 Stunde an mir selbst verzweifelte, fiel mir das hier auf.


Test 1: Debugger läuft bis zum Breakpoint in Zeile 118 durch. Der String "s" hat den Wert "1.7+" (obwohl ich in der Zeile drüber alles ausser Zahlen und Punkt entfernt habe).
Test 2: Zusätzlicher Breakpoint in Zeile 117. In dem warte ich ein paar Sekunden und steppe erst dann weiter. Das "+" ist entfernt worden.

WTF?! Ein und der selbe Code liefert unterschiedliche Ergebnisse, wenn man nur ein paar Sekunden wartet? Kein Wunder, dass der gesuchte Bug nur dann auftrat, wenn ich keinen Breakpoint im verdächtigen Code hatte. Natürlich tritt der Effekt in einer einfachen Testklasse mit main()-Methode nicht auf.

Ich weiss nicht, ob ich weiterhin an mir selbst zweifeln soll oder OpenJDK einfach in die Ecke werfe. Für heute jedenfalls letzteres.

Trackbacks

Trackback-URL für diesen Eintrag

Dieser Link ist nicht aktiv. Er enthält die Trackback-URI zu diesem Eintrag. Sie können diese URI benutzen, um Ping- und Trackbacks von Ihrem eigenen Blog zu diesem Eintrag zu schicken. Um den Link zu kopieren, klicken Sie ihn mit der rechten Maustaste an und wählen "Verknüpfung kopieren" im Internet Explorer oder "Linkadresse kopieren" in Mozilla/Firefox.

Keine Trackbacks

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

Noch keine Kommentare

Die Kommentarfunktion wurde vom Besitzer dieses Blogs in diesem Eintrag deaktiviert.