diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/ConstructorResolver.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/ConstructorResolver.java index d98b72efc732af863415f79774c186447f5cbe9f..e5acd029ea47752fb50c4061b5ea6280e765ee30 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/ConstructorResolver.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/ConstructorResolver.java @@ -486,7 +486,9 @@ class ConstructorResolver { } } - candidates.sort(AutowireUtils.EXECUTABLE_COMPARATOR); + if (candidates.size() > 1) { // explicitly skip immutable singletonList + candidates.sort(AutowireUtils.EXECUTABLE_COMPARATOR); + } ConstructorArgumentValues resolvedValues = null; boolean autowiring = (mbd.getResolvedAutowireMode() == AutowireCapableBeanFactory.AUTOWIRE_CONSTRUCTOR); diff --git a/spring-context/src/test/java/org/springframework/context/event/AnnotationDrivenEventListenerTests.java b/spring-context/src/test/java/org/springframework/context/event/AnnotationDrivenEventListenerTests.java index 1462146b9bc749f59dc88a0c573e548ce4696169..95ead7c1d9227900dcfc198edd7f15e6339554f9 100644 --- a/spring-context/src/test/java/org/springframework/context/event/AnnotationDrivenEventListenerTests.java +++ b/spring-context/src/test/java/org/springframework/context/event/AnnotationDrivenEventListenerTests.java @@ -850,9 +850,9 @@ public class AnnotationDrivenEventListenerTests { this.eventCollector.addEvent(this, event); } - @Override @EventListener @Async + @Override public void handleAsync(AnotherTestEvent event) { assertThat(Thread.currentThread().getName()).isNotEqualTo(event.content); this.eventCollector.addEvent(this, event); @@ -877,9 +877,9 @@ public class AnnotationDrivenEventListenerTests { this.eventCollector.addEvent(this, event); } - @Override @EventListener @Async + @Override public void handleAsync(AnotherTestEvent event) { assertThat(Thread.currentThread().getName()).isNotEqualTo(event.content); this.eventCollector.addEvent(this, event); @@ -994,20 +994,20 @@ public class AnnotationDrivenEventListenerTests { super.handle(event); } - @Override @EventListener(condition = "#payload.startsWith('OK')") + @Override public void handleString(String payload) { super.handleString(payload); } - @Override @ConditionalEvent("#root.event.timestamp > #p0") + @Override public void handleTimestamp(Long timestamp) { collectEvent(timestamp); } - @Override @ConditionalEvent("@conditionEvaluator.valid(#p0)") + @Override public void handleRatio(Double ratio) { collectEvent(ratio); } @@ -1085,6 +1085,7 @@ public class AnnotationDrivenEventListenerTests { } } + @Configuration @Import(UseMissingEventListener.class) public static class MissingEventListener { @@ -1095,6 +1096,7 @@ public class AnnotationDrivenEventListenerTests { } } + @Component public static class MyEventListener { @@ -1104,6 +1106,7 @@ public class AnnotationDrivenEventListenerTests { } } + public static class UseMissingEventListener { @Inject diff --git a/spring-core/src/main/java/org/springframework/core/codec/AbstractDataBufferDecoder.java b/spring-core/src/main/java/org/springframework/core/codec/AbstractDataBufferDecoder.java index ff01c0b47f44b8f1a88e0c6f8746ed4fd6667514..0fd5870b2a2e5190009f9154f207f4dce9138382 100644 --- a/spring-core/src/main/java/org/springframework/core/codec/AbstractDataBufferDecoder.java +++ b/spring-core/src/main/java/org/springframework/core/codec/AbstractDataBufferDecoder.java @@ -102,6 +102,7 @@ public abstract class AbstractDataBufferDecoder extends AbstractDecoder { * {@link #decode(DataBuffer, ResolvableType, MimeType, Map)} instead */ @Deprecated + @Nullable protected T decodeDataBuffer(DataBuffer buffer, ResolvableType elementType, @Nullable MimeType mimeType, @Nullable Map hints) { diff --git a/spring-web/src/main/java/org/springframework/http/codec/ServerSentEventHttpMessageReader.java b/spring-web/src/main/java/org/springframework/http/codec/ServerSentEventHttpMessageReader.java index b7553e168c7b97f31f630faf0db2004f42b59341..d6b9c9cb9db7f562a1748d04e51de2b9c89a0d44 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/ServerSentEventHttpMessageReader.java +++ b/spring-web/src/main/java/org/springframework/http/codec/ServerSentEventHttpMessageReader.java @@ -155,6 +155,7 @@ public class ServerSentEventHttpMessageReader implements HttpMessageReader hints) { if (String.class == dataType.resolve()) { return data.substring(0, data.length() - 1);