Prior to this commit, parallel invocations of
MethodParameter.findParameterIndex() (invoked indirectly via
SynthesizingMethodParameter.forParameter() and
MethodParameter.forParameter()) could intermittently lead to an
IllegalArgumentException being thrown due to a race condition in the
internal implementation of the JDK's
java.lang.reflect.Executable.getParameters() method.
This commit addresses this issue by introducing a fallback for-loop
that iterates over the candidate parameters a second time using
equality checks instead of identity checks.
Issue: SPR-17534
(cherry-picked from commit 81fde5ec4103e3db28bf79073691938a4743b121)
As discussed in KT-25165, from a Kotlin POV enum constructors
have no parameter, this is an "implementation detail"
required for running on the JVM, so it seems relevant to skip
Kotlin reflection in that case and just delegate to Java
reflection.
Issue: SPR-16931
This commit makes sure that in DataBufferUtils.write, any received data
buffers are returned as part of the returned flux, even when an error
occurs or is received.
Issue: SPR-16782
(cherry picked from commit 1a0522b8057dead47c90404d629c7597d0787dce)
This commit fixes an issue where DataBufferUtils.join() would not
release databuffers that preceded an error signal.
Issue: SPR-17025
(cherry picked from commit 196c0adf47868467ec9242daea81ce7e0246a152)
Before this commit, Kotlin inner class nested configuration
handling thrown an IndexOutOfBoundsException due to bogus filtering
of its constructor parameter reference to an instance of the outer
class.
This commit keep constructor parameter of type INSTANCE in order to
throw a more meaningful NoSuchBeanDefinitionException.
Issue: SPR-17222
Includes Java 8 getDeclaredAnnotation shortcut for lookup on Class.
Issue: SPR-17146
(cherry picked from commit 4521a79b2dfd4802bcbe2fba4c841510b5f0da54)
Empty Maps are preferably initialized without capacity (not initializing them at all or lazily initializing with default capacity when needed).
Issue: SPR-17105
(cherry picked from commit 4a147d26fcd086ffc4d495e34b6d1b54854c345b)