From 0c825621b8d4a23bc819a72e786d7801d98a46b4 Mon Sep 17 00:00:00 2001 From: Rossen Stoyanchev Date: Mon, 30 Nov 2020 17:30:45 +0000 Subject: [PATCH] Avoid use of Optional wrapper to get List See gh-26170 --- .../org/springframework/http/MediaTypeFactory.java | 12 +++++++----- .../servlet/resource/ResourceHttpRequestHandler.java | 5 ++++- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/spring-web/src/main/java/org/springframework/http/MediaTypeFactory.java b/spring-web/src/main/java/org/springframework/http/MediaTypeFactory.java index 7ad0969f2b9..8487ab5b886 100644 --- a/spring-web/src/main/java/org/springframework/http/MediaTypeFactory.java +++ b/spring-web/src/main/java/org/springframework/http/MediaTypeFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2019 the original author or authors. + * Copyright 2002-2020 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. @@ -112,10 +112,12 @@ public final class MediaTypeFactory { * @return the corresponding media types, or an empty list if none found */ public static List getMediaTypes(@Nullable String filename) { - return Optional.ofNullable(StringUtils.getFilenameExtension(filename)) - .map(s -> s.toLowerCase(Locale.ENGLISH)) - .map(fileExtensionToMediaTypes::get) - .orElse(Collections.emptyList()); + List mediaTypes = null; + String ext = StringUtils.getFilenameExtension(filename); + if (ext != null) { + mediaTypes = fileExtensionToMediaTypes.get(ext.toLowerCase(Locale.ENGLISH)); + } + return (mediaTypes != null ? mediaTypes : Collections.emptyList()); } } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/ResourceHttpRequestHandler.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/ResourceHttpRequestHandler.java index 0cd981b6dea..03d5ca02502 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/ResourceHttpRequestHandler.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/ResourceHttpRequestHandler.java @@ -736,7 +736,10 @@ public class ResourceHttpRequestHandler extends WebContentGenerator mediaType = this.mediaTypes.get(ext.toLowerCase(Locale.ENGLISH)); } if (mediaType == null) { - mediaType = MediaTypeFactory.getMediaType(filename).orElse(null); + List mediaTypes = MediaTypeFactory.getMediaTypes(filename); + if (!CollectionUtils.isEmpty(mediaTypes)) { + mediaType = mediaTypes.get(0); + } } if (mediaType != null) { result = mediaType;