What's Changed
Bug Fixes 🐞
- Register the physical signature of Kotlin suspend functions in the Graal reflection config by @dstepanov in #13133
- Answer 400 when a Publisher part has no file name by @graemerocher in #13124
Improvements ⭐
- Resolve the built-in body handlers' types once by @graemerocher in #13139
- Reduce cold startup work: no zip file system scans, lazy MediaType quality, no Loom probe by @dstepanov in #13121
- Look up optional netty types by name in the access log connection metadata by @graemerocher in #13120
- Only devolve the streams read in the current batch at read complete by @graemerocher in #13148
- Keep the open WebSocket sessions next to the channel group by @graemerocher in #13143
- Record per pipeline whether the access log handler is installed by @graemerocher in #13142
- Make the HTTP/2 connection receive window configurable by @graemerocher in #13140
Docs 📖
- Document where request event listeners run and report slow ones by @graemerocher in #13146
Other Changes 💡
- HTTP/2 specification conformance and h2c pipeline wiring by @graemerocher in #13100
- Netty server pipeline configuration fixes by @graemerocher in #13101
- Tidy up response and request lifecycle handling in PipeliningServerHandler by @graemerocher in #13102
- Four small correctness fixes in the HTTP server, Netty layer and form binding by @graemerocher in #13104
- Netty server bootstrap and shutdown fixes by @graemerocher in #13107
- Cache parsed Accept header media type lists by @graemerocher in #13108
- Add JMH benchmarks for multipart, form, chunked and streaming JSON server scenarios by @graemerocher in #13112
- Do not retain lazy proxy targets as dependents of the proxy's context by @dstepanov in #13131
- Fix/12749 Jackson exception handling in core processor by @samikshathorat21 in #13172
- Handle absent optional HTTP/2 client configuration by @dlwhdgus0810 in #13092
- Let a refresh read the catalog it is rebuilding by @dstepanov in #13168
- Report annotation member defaults for Kotlin, Groovy and Python as for Java by @dstepanov in #13160
- Preserve annotation occurrence semantics in EvaluatedAnnotationMetadata by @dstepanov in #13173
- Answer a non-repeatable annotation from the annotation values by name by @dstepanov in #13166
- Describe a java.lang.reflect.Proxy through the interfaces it stands for by @dstepanov in #13175
- Add BeanConstructor.getTargetConstructor() and cache ExecutableMethod.getTargetMethod() by @dstepanov in #13156
- Read @Introspected.Property on the most derived declaration, for a proxy as for a class by @dstepanov in #13181
- Synthesize annotations of package private types by @dstepanov in #13174
- Fix duplicate Kotlin collection introspection properties by @dstepanov in #13144
- Bind the type arguments of super types two or more levels up through each level by @dstepanov in #13138
- Bind Python transitive supertype arguments by @dstepanov in #13149
- Release buffered HTTP/2 request data when the stream closes before read complete by @dstepanov in #13182
- Instantiate beans with a private injected constructor reflectively by @dstepanov in #13136
- Resolve Python compiler error dump directory lazily by @graemerocher in #13184
- Make StreamPressureSpec independent of the reader thread by @graemerocher in #13186
- Cache the Date header and access log timestamp per second; clear the access log request attribute by @graemerocher in #13118
New Contributors
- @dlwhdgus0810 made their first contribution in #13092
Full Changelog: v5.2.1...v5.2.2