From d96a63944c3d6586dd2c22bd086989d26a3235c8 Mon Sep 17 00:00:00 2001 From: Kai Zander Date: Sat, 27 Jan 2024 11:18:50 +0100 Subject: [PATCH 1/2] Simplify use of Reactor's cast operator This commit replaces filter(x -> x instanceof C).cast(C.class) with the built-in ofType(C.class). See gh-32141 --- .../http/codec/multipart/PartEventHttpMessageReader.java | 3 +-- .../function/MultipartRouterFunctionIntegrationTests.java | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/spring-web/src/main/java/org/springframework/http/codec/multipart/PartEventHttpMessageReader.java b/spring-web/src/main/java/org/springframework/http/codec/multipart/PartEventHttpMessageReader.java index 28916e52606..c3cf37df923 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/multipart/PartEventHttpMessageReader.java +++ b/spring-web/src/main/java/org/springframework/http/codec/multipart/PartEventHttpMessageReader.java @@ -168,8 +168,7 @@ public class PartEventHttpMessageReader extends LoggingCodecSupport implements H HttpHeaders headers = headersToken.headers(); Flux bodyTokens = - flux.filter(t -> t instanceof MultipartParser.BodyToken) - .cast(MultipartParser.BodyToken.class); + flux.ofType(MultipartParser.BodyToken.class); return createEvents(headers, bodyTokens); } else { diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/function/MultipartRouterFunctionIntegrationTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/function/MultipartRouterFunctionIntegrationTests.java index 198d73b9729..1268d8a15ac 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/function/MultipartRouterFunctionIntegrationTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/function/MultipartRouterFunctionIntegrationTests.java @@ -240,9 +240,8 @@ class MultipartRouterFunctionIntegrationTests extends AbstractRouterFunctionInte public Mono transferTo(ServerRequest request) { return request.body(BodyExtractors.toParts()) - .filter(FilePart.class::isInstance) + .ofType(FilePart.class) .next() - .cast(FilePart.class) .flatMap(part -> createTempFile() .flatMap(tempFile -> part.transferTo(tempFile) From 4b4778d5694402bea70ab72ad4c7dc5a4520374b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Sat, 27 Jan 2024 12:21:37 +0100 Subject: [PATCH 2/2] Polish "Simplify use of Reactor's cast operator" See gh-32141 --- .../http/codec/multipart/PartEventHttpMessageReader.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/spring-web/src/main/java/org/springframework/http/codec/multipart/PartEventHttpMessageReader.java b/spring-web/src/main/java/org/springframework/http/codec/multipart/PartEventHttpMessageReader.java index c3cf37df923..09987862b11 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/multipart/PartEventHttpMessageReader.java +++ b/spring-web/src/main/java/org/springframework/http/codec/multipart/PartEventHttpMessageReader.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2023 the original author or authors. + * Copyright 2002-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -167,8 +167,8 @@ public class PartEventHttpMessageReader extends LoggingCodecSupport implements H Assert.state(headersToken != null, "Signal should be headers token"); HttpHeaders headers = headersToken.headers(); - Flux bodyTokens = - flux.ofType(MultipartParser.BodyToken.class); + Flux bodyTokens = flux.ofType( + MultipartParser.BodyToken.class); return createEvents(headers, bodyTokens); } else {