diff --git a/spring-web/src/main/java/org/springframework/web/accept/MappingMediaTypeFileExtensionResolver.java b/spring-web/src/main/java/org/springframework/web/accept/MappingMediaTypeFileExtensionResolver.java index 59125b5ea0d..ac5569ab4bc 100644 --- a/spring-web/src/main/java/org/springframework/web/accept/MappingMediaTypeFileExtensionResolver.java +++ b/spring-web/src/main/java/org/springframework/web/accept/MappingMediaTypeFileExtensionResolver.java @@ -95,10 +95,12 @@ public class MappingMediaTypeFileExtensionResolver implements MediaTypeFileExten } /** - * Use this method for a reverse lookup from extension to MediaType. + * Use this method for a reverse, case-insensitive MediaType lookup. + * @param extension the extension to look up * @return a MediaType for the key or {@code null} */ protected MediaType lookupMediaType(String extension) { + extension = extension.toLowerCase(Locale.ENGLISH); return this.mediaTypes.get(extension); } diff --git a/spring-web/src/test/java/org/springframework/web/accept/MappingMediaTypeFileExtensionResolverTests.java b/spring-web/src/test/java/org/springframework/web/accept/MappingMediaTypeFileExtensionResolverTests.java index 4ea37728431..a999b9995b5 100644 --- a/spring-web/src/test/java/org/springframework/web/accept/MappingMediaTypeFileExtensionResolverTests.java +++ b/spring-web/src/test/java/org/springframework/web/accept/MappingMediaTypeFileExtensionResolverTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2014 the original author or authors. + * Copyright 2002-2015 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. @@ -51,4 +51,14 @@ public class MappingMediaTypeFileExtensionResolverTests { assertTrue(extensions.isEmpty()); } + // SPR-13747 + + @Test + public void lookupMediaTypeCaseInsensitive() { + Map mapping = Collections.singletonMap("json", MediaType.APPLICATION_JSON); + MappingMediaTypeFileExtensionResolver resolver = new MappingMediaTypeFileExtensionResolver(mapping); + MediaType mediaType = resolver.lookupMediaType("JSON"); + + assertEquals(mediaType, MediaType.APPLICATION_JSON); + } }