JAXenter.de

Das Portal für Java, Architektur, Cloud & Agile
X

Alle Infos zur aktuellen JavaOne gibt's in unserer Serie: JavaOne 2014.

JDK 7 Updates: Wie Oracle in Zukunft auf Fehlerjagd geht

Hartmut Schlosser

Oracle hat das neue OpenJDK-Projekt "JDK 7 Updates" eingerichtet. Es geht darum, Aktualisierungen für das JDK 7 an einem zentralen Ort zu sammeln und bereitzustellen. Dalibor Topic stellt die Funktionsweise des Projektes ausführlich vor - was gerade auch angesichts der zurückliegenden Unstimmigkeiten über die Priorität der vom Apache Lucene/Solr-Team gefundenen JDK7-Bugs von großem Interesse ist.

Wie funktioniert der Bug-Reporting und Bug-Bearbeitungsprozess für das JDK7 in Zukunft?

Wie Topic ausführt, hat man sich bereits vor einiger Zeit dazu entschlossen, die Arbeiten an Updates für das JDK 7 an einem vom übergeordneten JDK-Release-Projekt losgelösten Ort durchzuführen. Der Vorteil liegt darin, dass das Material des JDK-7-Release-Projektes langfristig erhalten bleibt und nicht vom neueren JDK-7-Update-Material überlagert wird.

Die Änderungen, die in ein JDK 7 Update einfließen, bestehen typischerweise aus Bugfixes, die über das JDK-8-Projekt in das neue JDK-7-Updates-Projekt eingehen. Bug-Meldungen werden über mehrere Kanäle angenommen: Oracles eigene Test-Teams oder andere OpenJDK-Entwickler können Bugs melden, außerdem steht ein Webformular für Bug-Reports zur Verfügung.

Nach der Meldung eines Bugs über das Webformular wird dem Bug zunächst die anfängliche Prioritätsstufe 4 (Low) zugeordnet - auf einer Scala von 1 (Very High) bis 5 (Very Low). Ein spezielles WebBugs-Team bei Oracle prüft alle einkommenden Bug Reports, siebt Doppelungen aus und fordert, wenn nötig, weitere Informationen vom Submitter an.

Auch Entscheidungen über eine Änderung der Prioritätsstufe werden getroffen. Hier spielen drei Aspekte eine Rolle:

  • Auswirkung ("Impact"): Wie schwer wiegt der Bug? Ein Bug, der die Virtual Machine zum Absturz bringt, würde beispielsweise mit einer hohen Priorität versehen.
  • Wahrscheinlichkeit des Auftretens ("Likelihood"): Handelt es sich um einen Bug, der häufig auftritt oder nur in ganz bestimmten, spezialisierten Konstellationen?
  • Workaround: Existiert bereits ein Workaround? Besonders bei einem einfach durchzuführenden Workaround würde die Priorität tendenziell nicht nach oben gesetzt werden.

Topic betont, dass die vergebene Priorität nicht in Stein gemeißelt ist und im Laufe des Bearbeitungsprozesses verändert werden kann.

Neben der Priorität wird jedem Bug auch ein Status zugeordnet. Die verfügbaren Status sind
"Fix In Progress", "Fix Available" und "Fix Delivered".

"Fix Available" bedeutet hierbei, dass der Bugfix in das OpenJDK Mercurial Versionskontrollsystem eingepflegt wurde. Der Bug erhält in der Datenbank eine URL zum Quellcode-Commit für das OpenJDK und wird über verschiedene Integrations- und Test-Sequenzen in das OpenJDK eingebunden. Sobald der Fix in einen konkreten Build eingebaut wurde, erhält er den Status "Fix Delivered".

Topic weist darauf hin, dass der Weg für einigen Quellcode wie z.B. Fixes für die HotSpot VM länger werden kann, da das HotSpot-Team weitere Prozesse zu beachten hat.

Die Kommunikation über alle Fixes wird wie üblich über die jdk7u-dev Mailing-Liste abgewickelt. Was nun noch ansteht, ist eine Überarbeitung der Bug Tracking Infrastruktur für OpenJDK. Hier soll es das Ziel sein, die Transparenz für JDK 8 und JDK 7 Updates weiter zu erhöhen.

Am Schluss steht der Aufruf an alle Interessierten, sich ausgiebig am Testen und Verbessern des JDK zu beteiligen.

Verwandte Themen: 

Kommentare

Ihr Kommentar zum Thema

Als Gast kommentieren:

Gastkommentare werden nach redaktioneller Prüfung freigegeben (bitte Policy beachten).