Skip to content

Commit 5234669

Browse files
committed
Fix binary compatibility problem
1 parent 1f85f39 commit 5234669

File tree

1 file changed

+10
-18
lines changed

1 file changed

+10
-18
lines changed

grails-plugin-controllers/src/main/groovy/grails/artefact/controller/support/ResponseRenderer.groovy

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import grails.plugins.GrailsPlugin
2323
import grails.plugins.GrailsPluginManager
2424
import grails.util.GrailsStringUtils
2525
import grails.util.GrailsWebUtil
26+
import grails.util.Holders
2627
import grails.web.JSONBuilder
2728
import grails.web.api.WebAttributes
2829
import grails.web.http.HttpHeaders
@@ -148,26 +149,17 @@ trait ResponseRenderer extends WebAttributes {
148149
applySiteMeshLayout webRequest.currentRequest, false, explicitSiteMeshLayout
149150
}
150151

151-
private Closure jsonRenderer = null
152152
private void renderJsonInternal(HttpServletResponse response, Closure callable) {
153-
if(jsonRenderer == null) {
154-
boolean legacyBuilder = getGrailsApplication()?.getConfig()?.getProperty(Settings.SETTING_LEGACY_JSON_BUILDER, Boolean.class, false)
155-
if(legacyBuilder) {
156-
jsonRenderer = { HttpServletResponse res, Closure c ->
157-
def builder = new JSONBuilder()
158-
JSON json = builder.build(c)
159-
json.render res
160-
}
161-
}
162-
else {
163-
jsonRenderer = { HttpServletResponse res, Closure c ->
164-
res.setContentType(GrailsWebUtil.getContentType(MimeType.JSON.getName(), res.getCharacterEncoding() ?: "UTF-8"))
165-
def jsonBuilder = new StreamingJsonBuilder(res.writer)
166-
jsonBuilder.call c
167-
}
168-
}
153+
if( Holders.getConfig().getProperty(Settings.SETTING_LEGACY_JSON_BUILDER, Boolean.class, false) ) {
154+
def builder = new JSONBuilder()
155+
JSON json = builder.build(callable)
156+
json.render response
157+
}
158+
else {
159+
response.setContentType(GrailsWebUtil.getContentType(MimeType.JSON.getName(), response.getCharacterEncoding() ?: "UTF-8"))
160+
def jsonBuilder = new StreamingJsonBuilder(response.writer)
161+
jsonBuilder.call callable
169162
}
170-
jsonRenderer.call( response, callable)
171163
}
172164

173165
/**

0 commit comments

Comments
 (0)