Restore StringUtils.hasLength check
Update `MimeTypeUtils` so that the StringUtils.hasLength check is performed immediately on the incoming argument, rather than in `parseMimeTypeInternal`. This restores the `IllegalArgumentException` rather than the `NullPointerException` which is thrown by the `ConcurrentHashMap`. Closes gh-23215 See gh-23211
This commit is contained in:
parent
87c15ba9ad
commit
b3d56ebf3b
|
|
@ -189,14 +189,13 @@ public abstract class MimeTypeUtils {
|
|||
* @throws InvalidMimeTypeException if the string cannot be parsed
|
||||
*/
|
||||
public static MimeType parseMimeType(String mimeType) {
|
||||
if (!StringUtils.hasLength(mimeType)) {
|
||||
throw new InvalidMimeTypeException(mimeType, "'mimeType' must not be empty");
|
||||
}
|
||||
return cachedMimeTypes.get(mimeType);
|
||||
}
|
||||
|
||||
private static MimeType parseMimeTypeInternal(String mimeType) {
|
||||
if (!StringUtils.hasLength(mimeType)) {
|
||||
throw new InvalidMimeTypeException(mimeType, "'mimeType' must not be empty");
|
||||
}
|
||||
|
||||
int index = mimeType.indexOf(';');
|
||||
String fullType = (index >= 0 ? mimeType.substring(0, index) : mimeType).trim();
|
||||
if (fullType.isEmpty()) {
|
||||
|
|
|
|||
|
|
@ -285,6 +285,12 @@ public class MimeTypeTests {
|
|||
MimeTypeUtils.parseMimeType("audio/*;attr=\""));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void parseMimeTypeNull() {
|
||||
assertThatExceptionOfType(InvalidMimeTypeException.class).isThrownBy(() ->
|
||||
MimeTypeUtils.parseMimeType(null));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void parseMimeTypes() {
|
||||
String s = "text/plain, text/html, text/x-dvi, text/x-c";
|
||||
|
|
|
|||
Loading…
Reference in New Issue