@@ -23,6 +23,7 @@ import grails.plugins.GrailsPlugin
2323import grails.plugins.GrailsPluginManager
2424import grails.util.GrailsStringUtils
2525import grails.util.GrailsWebUtil
26+ import grails.util.Holders
2627import grails.web.JSONBuilder
2728import grails.web.api.WebAttributes
2829import 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