@@ -155,29 +155,22 @@ public Flux<PartEvent> read(ResolvableType elementType, ReactiveHttpInputMessage
155
155
AtomicInteger partCount = new AtomicInteger ();
156
156
return allPartsTokens
157
157
.windowUntil (t -> t instanceof MultipartParser .HeadersToken , true )
158
- .concatMap (partTokens -> {
159
- if (tooManyParts (partCount )) {
160
- return Mono .error (new DecodingException ("Too many parts (" + partCount .get () + "/" +
161
- this .maxParts + " allowed)" ));
162
- }
163
- else {
164
- return partTokens .switchOnFirst ((signal , flux ) -> {
165
- if (signal .hasValue ()) {
166
- MultipartParser .HeadersToken headersToken = (MultipartParser .HeadersToken ) signal .get ();
167
- Assert .state (headersToken != null , "Signal should be headers token" );
168
-
169
- HttpHeaders headers = headersToken .headers ();
170
- Flux <MultipartParser .BodyToken > bodyTokens = flux .ofType (
171
- MultipartParser .BodyToken .class );
172
- return createEvents (headers , bodyTokens );
173
- }
174
- else {
158
+ .concatMap (partTokens -> partTokens
159
+ .switchOnFirst ((signal , flux ) -> {
160
+ if (!signal .hasValue ()) {
175
161
// complete or error signal
176
162
return flux .cast (PartEvent .class );
177
163
}
178
- });
179
- }
180
- });
164
+ else if (tooManyParts (partCount )) {
165
+ return Mono .error (new DecodingException ("Too many parts (" + partCount .get () +
166
+ "/" + this .maxParts + " allowed)" ));
167
+ }
168
+ MultipartParser .HeadersToken headersToken = (MultipartParser .HeadersToken ) signal .get ();
169
+ Assert .state (headersToken != null , "Signal should be headers token" );
170
+
171
+ HttpHeaders headers = headersToken .headers ();
172
+ return createEvents (headers , flux .ofType (MultipartParser .BodyToken .class ));
173
+ }));
181
174
});
182
175
}
183
176
0 commit comments