Micronaut Core 5.2.16: Deadlock beim Netty-Stopp behoben, unvollständige Multipart-Bodies abgelehnt
Das Micronaut-Projekt hat am 16. Oktober 2026 (10:25 UTC) micronaut-core v5.2.16 veröffentlicht. Es ist ein Patch-Release der Linie 5.2.x; für die 4.x-Linie erschien einen Tag zuvor v4.10.32. Die Release Notes zählen zwölf Fehlerbehebungen, sechs Verbesserungen und dreizehn weitere Änderungen, die meisten von Denis Stepanov und Graeme Rocher.
Lebenszyklus des Servers. Zwei Korrekturen betreffen das Herunterfahren. Eine beseitigt einen Deadlock durch falsche Sperrreihenfolge zwischen NettyHttpServer und dem Stoppen des Application Context (#13715). Die andere sorgt dafür, dass der Graceful Shutdown vor dem Stopp des Netty-Standardservers läuft (#13823). Dazu kommen zwei Änderungen am Refresh: Der Bootstrap-Kontext, den ein Refresh ersetzt, wird jetzt geschlossen, und die Reihenfolge der Builder-Properties bleibt erhalten (#13956); nach einem fehlgeschlagenen Refresh wird die Umgebung wiederhergestellt (#13974).
HTTP-Verarbeitung. Mehrere Korrekturen machen die Behandlung von Anfragen und Fehlern strenger:
- ein Multipart-Body, der vor seiner abschließenden Grenze endet, wird abgelehnt statt akzeptiert (#13793);
- wirft das Schreiben der Antwort eine Ausnahme, antwortet der Server mit 500 und schließt die Verbindung (#13795);
- Fehler beim Lesen eines Bodys über einen
InputStreamwerden mit ihrem eigenen Status beantwortet (#13869); Accept-Charsetwird beim Lesen vonString-Bodys ignoriert (#13801), fehlende Fetch-Metadata-Werte wurden ergänzt (#13839);- Service-Clients übernehmen die Einstellungen des Verbindungspools (#13906).

Dependency Injection. Eine Bean-Definition scheitert nicht mehr, wenn einer ihrer @Indexed-Typen fehlt (#13794); getBeanRegistrations(Class, Qualifier) berücksichtigt jetzt den Qualifier (#13726); das Ziel einer qualifizierten Proxy-Target-Bean wird als das des Proxys aufgelöst (#13781); verschachtelte indizierte Konfigurationswerte funktionieren mit @EachProperty(list = true) (#13697). Prozessoroptionen, die als Systemproperties gesetzt wurden, werden nach der Annotationsverarbeitung zurückgesetzt (#13780).
Python-Anbindung. Rund ein Drittel der Einträge betrifft die Unterstützung für Python auf GraalPy. Java-Exceptions sind in GraalPy-Kontexten nun Instanzen von Pythons Exception (#13828); zeitzonenbewusste Python-Datetimes werden auf Instant, OffsetDateTime und ZonedDateTime abgebildet (#13833); ein gepoolter Python-Kontext lässt sich nach dem Start vorwärmen (#13834). Weitere Änderungen korrigieren den Methodenaufruf gegen Java-Basisklassen: geerbte Varargs-Methoden (#13845), rohe generische Basisklassen mit Typvariable als Rückgabe (#13846), das Erzeugen der Java-Basis vor __init__ (#13878) und das Ausklammern von Methoden mit $ im Namen (#13879). Einfache Python-Hilfsklassen, die der Prozessor nicht überbrücken kann, werden jetzt kompiliert (#13829).
Zwei Mitwirkende haben mit diesem Release ihren ersten Beitrag geleistet. Die vollständige Liste zeigt der Vergleich mit v5.2.15.
Quelle: Micronaut, „Release v5.2.16“ (GitHub) — https://github.com/micronaut-projects/micronaut-core/releases/tag/v5.2.16