Use InvalidMimeTypeException in MimeTypeUtils#sortBySpecificity

Closes gh-31254
This commit is contained in:
rstoyanchev 2023-11-15 18:57:09 +00:00
parent 19e8ed130c
commit 05c3ffb2fb
2 changed files with 6 additions and 3 deletions

View File

@ -362,7 +362,9 @@ public abstract class MimeTypeUtils {
*/
public static <T extends MimeType> void sortBySpecificity(List<T> mimeTypes) {
Assert.notNull(mimeTypes, "'mimeTypes' must not be null");
Assert.isTrue(mimeTypes.size() <= 50, "Too many elements");
if (mimeTypes.size() >= 50) {
throw new InvalidMimeTypeException(mimeTypes.toString(), "Too many elements");
}
bubbleSort(mimeTypes, MimeType::isLessSpecific);
}

View File

@ -451,8 +451,9 @@ class MimeTypeTests {
MimeType audioWave = new MimeType("audio", "wave");
MimeType audioBasicLevel = new MimeType("audio", "basic", singletonMap("level", "1"));
List<MimeType> mimeTypes = new ArrayList<>(List.of(MimeTypeUtils.ALL, audio, audioWave, audioBasic,
audioBasicLevel));
List<MimeType> mimeTypes = new ArrayList<>(
List.of(MimeTypeUtils.ALL, audio, audioWave, audioBasic, audioBasicLevel));
MimeTypeUtils.sortBySpecificity(mimeTypes);
assertThat(mimeTypes).containsExactly(audioWave, audioBasicLevel, audioBasic, audio, MimeTypeUtils.ALL);