Polishing contribution

Closes gh-27216
This commit is contained in:
Rossen Stoyanchev 2021-07-27 17:41:30 +01:00
parent a747cc3e91
commit 6c68419073
2 changed files with 17 additions and 23 deletions

View File

@ -356,7 +356,7 @@ public class SynchronossPartHttpMessageReader extends LoggingCodecSupport implem
this.isFilePart = (MultipartUtils.getFileName(headers) != null);
this.partSize = 0;
if (maxParts > 0 && index > maxParts) {
throw new DecodingException("Too many parts (" + index + "/" + maxParts + " allowed)");
throw new DecodingException("Too many parts: Part[" + index + "] but maxParts=" + maxParts);
}
return this.storageFactory.newStreamStorageForPartBody(headers, index);
}

View File

@ -1,5 +1,5 @@
/*
* Copyright 2002-2020 the original author or authors.
* Copyright 2002-2021 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.
@ -165,37 +165,31 @@ public class SynchronossPartHttpMessageReaderTests extends AbstractLeakCheckingT
@Test
void readTooManyParts() {
testMultipartExceptions(reader -> reader.setMaxParts(1), ex -> {
assertThat(ex)
.isInstanceOf(DecodingException.class)
.hasMessageStartingWith("Failure while parsing part[2]");
assertThat(ex.getCause())
.hasMessage("Too many parts (2/1 allowed)");
}
testMultipartExceptions(reader -> reader.setMaxParts(1),
ex -> assertThat(ex)
.isInstanceOf(DecodingException.class)
.hasMessageStartingWith("Failure while parsing part[2]")
.hasRootCauseMessage("Too many parts: Part[2] but maxParts=1")
);
}
@Test
void readFilePartTooBig() {
testMultipartExceptions(reader -> reader.setMaxDiskUsagePerPart(5), ex -> {
assertThat(ex)
.isInstanceOf(DecodingException.class)
.hasMessageStartingWith("Failure while parsing part[1]");
assertThat(ex.getCause())
.hasMessage("Part[1] exceeded the disk usage limit of 5 bytes");
}
testMultipartExceptions(reader -> reader.setMaxDiskUsagePerPart(5),
ex -> assertThat(ex)
.isInstanceOf(DecodingException.class)
.hasMessageStartingWith("Failure while parsing part[1]")
.hasRootCauseMessage("Part[1] exceeded the disk usage limit of 5 bytes")
);
}
@Test
void readPartHeadersTooBig() {
testMultipartExceptions(reader -> reader.setMaxInMemorySize(1), ex -> {
assertThat(ex)
.isInstanceOf(DecodingException.class)
.hasMessageStartingWith("Failure while parsing part[1]");
assertThat(ex.getCause())
.hasMessage("Part[1] exceeded the in-memory limit of 1 bytes");
}
testMultipartExceptions(reader -> reader.setMaxInMemorySize(1),
ex -> assertThat(ex)
.isInstanceOf(DecodingException.class)
.hasMessageStartingWith("Failure while parsing part[1]")
.hasRootCauseMessage("Part[1] exceeded the in-memory limit of 1 bytes")
);
}