Support empty part in DefaultPartHttpMessageReader

This commit fixes a bug in DefaultPartHttpMessageReader's
MultipartParser, due to which the last token in a part window was not
properly indicated.

Closes gh-30953
This commit is contained in:
Arjen Poutsma
2023-12-06 11:51:48 +01:00
parent 2e3d13331a
commit ef4ffa0005
4 changed files with 38 additions and 2 deletions

View File

@@ -257,13 +257,19 @@ class MultipartRouterFunctionIntegrationTests extends AbstractRouterFunctionInte
assertThat(data).hasSize(2);
List<PartEvent> fileData = data.get(0);
assertThat(fileData).hasSize(1);
assertThat(fileData).hasSize(2);
assertThat(fileData).element(0).isInstanceOf(FilePartEvent.class);
FilePartEvent filePartEvent = (FilePartEvent) fileData.get(0);
assertThat(filePartEvent.name()).isEqualTo("fooPart");
assertThat(filePartEvent.filename()).isEqualTo("foo.txt");
DataBufferUtils.release(filePartEvent.content());
assertThat(fileData).element(1).isInstanceOf(FilePartEvent.class);
filePartEvent = (FilePartEvent) fileData.get(1);
assertThat(filePartEvent.name()).isEqualTo("fooPart");
assertThat(filePartEvent.filename()).isEqualTo("foo.txt");
DataBufferUtils.release(filePartEvent.content());
List<PartEvent> fieldData = data.get(1);
assertThat(fieldData).hasSize(1);
assertThat(fieldData).element(0).isInstanceOf(FormPartEvent.class);