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
|
* @throws InvalidMimeTypeException if the string cannot be parsed
|
||||||
*/
|
*/
|
||||||
public static MimeType parseMimeType(String mimeType) {
|
public static MimeType parseMimeType(String mimeType) {
|
||||||
|
if (!StringUtils.hasLength(mimeType)) {
|
||||||
|
throw new InvalidMimeTypeException(mimeType, "'mimeType' must not be empty");
|
||||||
|
}
|
||||||
return cachedMimeTypes.get(mimeType);
|
return cachedMimeTypes.get(mimeType);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static MimeType parseMimeTypeInternal(String mimeType) {
|
private static MimeType parseMimeTypeInternal(String mimeType) {
|
||||||
if (!StringUtils.hasLength(mimeType)) {
|
|
||||||
throw new InvalidMimeTypeException(mimeType, "'mimeType' must not be empty");
|
|
||||||
}
|
|
||||||
|
|
||||||
int index = mimeType.indexOf(';');
|
int index = mimeType.indexOf(';');
|
||||||
String fullType = (index >= 0 ? mimeType.substring(0, index) : mimeType).trim();
|
String fullType = (index >= 0 ? mimeType.substring(0, index) : mimeType).trim();
|
||||||
if (fullType.isEmpty()) {
|
if (fullType.isEmpty()) {
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,12 @@ public class MimeTypeTests {
|
||||||
MimeTypeUtils.parseMimeType("audio/*;attr=\""));
|
MimeTypeUtils.parseMimeType("audio/*;attr=\""));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void parseMimeTypeNull() {
|
||||||
|
assertThatExceptionOfType(InvalidMimeTypeException.class).isThrownBy(() ->
|
||||||
|
MimeTypeUtils.parseMimeType(null));
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void parseMimeTypes() {
|
public void parseMimeTypes() {
|
||||||
String s = "text/plain, text/html, text/x-dvi, text/x-c";
|
String s = "text/plain, text/html, text/x-dvi, text/x-c";
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue