Apply "instanceof pattern matching" in spring-jms

This commit is contained in:
Sam Brannen
2023-01-16 19:12:58 +01:00
parent 3a585f8c29
commit 8be542016b
25 changed files with 180 additions and 178 deletions

View File

@@ -31,6 +31,7 @@ import org.springframework.util.Assert;
* @author Arjen Poutsma
* @author Mark Fisher
* @author Rossen Stoyanchev
* @author Sam Brannen
* @since 4.0
* @param <T> the message payload type
* @see GenericMessage
@@ -153,14 +154,14 @@ public final class MessageBuilder<T> {
return this.providedMessage;
}
MessageHeaders headersToUse = this.headerAccessor.toMessageHeaders();
if (this.payload instanceof Throwable) {
if (this.providedMessage != null && this.providedMessage instanceof ErrorMessage) {
Message<?> message = ((ErrorMessage) this.providedMessage).getOriginalMessage();
if (this.payload instanceof Throwable throwable) {
if (this.providedMessage != null && this.providedMessage instanceof ErrorMessage errorMessage) {
Message<?> message = errorMessage.getOriginalMessage();
if (message != null) {
return (Message<T>) new ErrorMessage((Throwable) this.payload, headersToUse, message);
return (Message<T>) new ErrorMessage(throwable, headersToUse, message);
}
}
return (Message<T>) new ErrorMessage((Throwable) this.payload, headersToUse);
return (Message<T>) new ErrorMessage(throwable, headersToUse);
}
else {
return new GenericMessage<>(this.payload, headersToUse);
@@ -203,8 +204,8 @@ public final class MessageBuilder<T> {
public static <T> Message<T> createMessage(@Nullable T payload, MessageHeaders messageHeaders) {
Assert.notNull(payload, "Payload must not be null");
Assert.notNull(messageHeaders, "MessageHeaders must not be null");
if (payload instanceof Throwable) {
return (Message<T>) new ErrorMessage((Throwable) payload, messageHeaders);
if (payload instanceof Throwable throwable) {
return (Message<T>) new ErrorMessage(throwable, messageHeaders);
}
else {
return new GenericMessage<>(payload, messageHeaders);