Skip to content

Commit 42029de

Browse files
committed
Merge branch '3.1.x' into 3.2.x
2 parents 35e292d + b6bff6a commit 42029de

File tree

2 files changed

+12
-6
lines changed

2 files changed

+12
-6
lines changed

grails-plugin-mimetypes/src/main/groovy/org/grails/web/mime/DefaultMimeTypeResolver.groovy

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ package org.grails.web.mime
1717

1818
import grails.web.mime.MimeType
1919
import grails.web.mime.MimeTypeResolver
20+
import groovy.transform.CompileStatic
2021
import org.grails.web.servlet.mvc.GrailsWebRequest
2122

2223
/**
@@ -25,6 +26,7 @@ import org.grails.web.servlet.mvc.GrailsWebRequest
2526
* @author Graeme Rocher
2627
* @since 2.3
2728
*/
29+
@CompileStatic
2830
class DefaultMimeTypeResolver implements MimeTypeResolver {
2931

3032
/**
@@ -36,7 +38,7 @@ class DefaultMimeTypeResolver implements MimeTypeResolver {
3638
@Override
3739
MimeType resolveResponseMimeType(GrailsWebRequest webRequest= GrailsWebRequest.lookup()) {
3840
if (webRequest != null) {
39-
return webRequest.response.mimeType
41+
return HttpServletResponseExtension.getMimeType(webRequest.response)
4042
}
4143
return null
4244
}
@@ -50,7 +52,7 @@ class DefaultMimeTypeResolver implements MimeTypeResolver {
5052
@Override
5153
MimeType resolveRequestMimeType(GrailsWebRequest webRequest = GrailsWebRequest.lookup()) {
5254
if (webRequest != null) {
53-
final allMimeTypes = webRequest.request.mimeTypes
55+
final allMimeTypes = HttpServletRequestExtension.getMimeTypes(webRequest.request)
5456
if(allMimeTypes) {
5557
return allMimeTypes[0]
5658
}

grails-plugin-mimetypes/src/main/groovy/org/grails/web/mime/HttpServletRequestExtension.groovy

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@ package org.grails.web.mime
1717

1818
import grails.web.http.HttpHeaders
1919
import grails.web.mime.MimeType
20+
import groovy.transform.CompileStatic
2021
import org.grails.web.util.GrailsApplicationAttributes
22+
import org.springframework.web.context.WebApplicationContext
2123
import org.springframework.web.context.support.WebApplicationContextUtils
2224

2325
import javax.servlet.http.HttpServletRequest
@@ -33,6 +35,7 @@ import org.grails.plugins.web.api.MimeTypesApiSupport
3335
* @since 3.0
3436
*
3537
*/
38+
@CompileStatic
3639
class HttpServletRequestExtension {
3740

3841
protected static MimeTypesApiSupport apiSupport = new MimeTypesApiSupport()
@@ -52,7 +55,7 @@ class HttpServletRequestExtension {
5255
static String getFormat(HttpServletRequest request) {
5356
def result = request.getAttribute(GrailsApplicationAttributes.CONTENT_FORMAT)
5457
if (!result) {
55-
result = request.getMimeTypes()[0].extension
58+
result = getMimeTypes(request)[0].extension
5659
request.setAttribute(GrailsApplicationAttributes.CONTENT_FORMAT, result)
5760
}
5861
result
@@ -67,9 +70,10 @@ class HttpServletRequestExtension {
6770
static MimeType[] getMimeTypes(HttpServletRequest request) {
6871
MimeType[] result = (MimeType[])request.getAttribute(GrailsApplicationAttributes.REQUEST_FORMATS)
6972
if (!result) {
70-
def context = WebApplicationContextUtils.getRequiredWebApplicationContext(request.servletContext)
71-
def parser = new DefaultAcceptHeaderParser((MimeType[])context.getBean(MimeType.BEAN_NAME))
72-
def header = request.contentType
73+
WebApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(request.servletContext)
74+
MimeType[] mimeTypes = context != null ? (MimeType[])context.getBean(MimeType.BEAN_NAME) : MimeType.getConfiguredMimeTypes()
75+
def parser = new DefaultAcceptHeaderParser(mimeTypes)
76+
String header = request.contentType
7377
if (!header) header = request.getHeader(HttpHeaders.CONTENT_TYPE)
7478
result = parser.parse(header, header ? new MimeType(header) : MimeType.HTML)
7579

0 commit comments

Comments
 (0)