This is an automated email from the ASF dual-hosted git repository. jamesfredley pushed a commit to branch improve-gh-ci-speed in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit b2a3e3c49c71b1226e2227d0aa20241ff72a39d7 Author: James Fredley <[email protected]> AuthorDate: Sun Jan 25 13:13:35 2026 -0500 Add cleanup for HttpServletResponseExtension.@mimeTypes in all test files Tests that clear the static mimeTypes cache in setup() should also clear it in cleanup() to be good citizens and not leave static state that could affect other tests running in parallel. --- .../src/test/groovy/grails/web/mime/MimeUtilitySpec.groovy | 5 +++++ .../org/grails/plugins/web/mime/MimeTypesConfigurationSpec.groovy | 5 +++++ .../test/groovy/org/grails/web/mime/AcceptHeaderParserSpec.groovy | 2 ++ .../grails/web/servlet/mvc/RequestAndResponseMimeTypesApiSpec.groovy | 2 ++ .../grails/plugins/web/rest/render/hal/HalJsonRendererSpec.groovy | 2 ++ .../plugins/web/rest/render/BaseDomainClassRendererSpec.groovy | 2 ++ .../src/test/groovy/org/grails/web/util/WebUtilsTests.groovy | 2 ++ .../groovy/org/grails/web/mime/ContentFormatControllerTests.groovy | 5 +++++ 8 files changed, 25 insertions(+) diff --git a/grails-mimetypes/src/test/groovy/grails/web/mime/MimeUtilitySpec.groovy b/grails-mimetypes/src/test/groovy/grails/web/mime/MimeUtilitySpec.groovy index 83017e8c64..5ee62f2d2c 100644 --- a/grails-mimetypes/src/test/groovy/grails/web/mime/MimeUtilitySpec.groovy +++ b/grails-mimetypes/src/test/groovy/grails/web/mime/MimeUtilitySpec.groovy @@ -36,6 +36,11 @@ class MimeUtilitySpec extends Specification { HttpServletResponseExtension.@mimeTypes = null } + void cleanup() { + // Clear the static mimeTypes cache after each test for parallel test isolation + HttpServletResponseExtension.@mimeTypes = null + } + MimeUtility getMimeUtility() { def ga = new DefaultGrailsApplication() ga.config['grails.mime.types'] = [ html: ['text/html','application/xhtml+xml'], diff --git a/grails-mimetypes/src/test/groovy/org/grails/plugins/web/mime/MimeTypesConfigurationSpec.groovy b/grails-mimetypes/src/test/groovy/org/grails/plugins/web/mime/MimeTypesConfigurationSpec.groovy index 6728559c9d..217f3588cc 100644 --- a/grails-mimetypes/src/test/groovy/org/grails/plugins/web/mime/MimeTypesConfigurationSpec.groovy +++ b/grails-mimetypes/src/test/groovy/org/grails/plugins/web/mime/MimeTypesConfigurationSpec.groovy @@ -32,6 +32,11 @@ class MimeTypesConfigurationSpec extends Specification { HttpServletResponseExtension.@mimeTypes = null } + void cleanup() { + // Clear the static mimeTypes cache after each test for parallel test isolation + HttpServletResponseExtension.@mimeTypes = null + } + void "test when no mimeTypes configured then default should be used"() { setup: def application = new DefaultGrailsApplication() diff --git a/grails-mimetypes/src/test/groovy/org/grails/web/mime/AcceptHeaderParserSpec.groovy b/grails-mimetypes/src/test/groovy/org/grails/web/mime/AcceptHeaderParserSpec.groovy index b1638fa8f6..be250f53c5 100644 --- a/grails-mimetypes/src/test/groovy/org/grails/web/mime/AcceptHeaderParserSpec.groovy +++ b/grails-mimetypes/src/test/groovy/org/grails/web/mime/AcceptHeaderParserSpec.groovy @@ -68,6 +68,8 @@ grails.mime.types = [ xml: ['text/xml', 'application/xml'], void cleanup() { config = null Holders.setConfig null + // Clear the static mimeTypes cache after each test for parallel test isolation + HttpServletResponseExtension.@mimeTypes = null } void testXmlContentTypeWithCharset() { diff --git a/grails-mimetypes/src/test/groovy/org/grails/web/servlet/mvc/RequestAndResponseMimeTypesApiSpec.groovy b/grails-mimetypes/src/test/groovy/org/grails/web/servlet/mvc/RequestAndResponseMimeTypesApiSpec.groovy index a5bf36e8b6..2695fb7c00 100644 --- a/grails-mimetypes/src/test/groovy/org/grails/web/servlet/mvc/RequestAndResponseMimeTypesApiSpec.groovy +++ b/grails-mimetypes/src/test/groovy/org/grails/web/servlet/mvc/RequestAndResponseMimeTypesApiSpec.groovy @@ -64,6 +64,8 @@ class RequestAndResponseMimeTypesApiSpec extends Specification{ void cleanup() { RequestContextHolder.resetRequestAttributes() ShutdownOperations.runOperations() + // Clear the static mimeTypes cache after each test for parallel test isolation + HttpServletResponseExtension.@mimeTypes = null } void "Test format property is valid for CONTENT_TYPE header only"() { diff --git a/grails-rest-transforms/src/test/groovy/org/grails/plugins/web/rest/render/hal/HalJsonRendererSpec.groovy b/grails-rest-transforms/src/test/groovy/org/grails/plugins/web/rest/render/hal/HalJsonRendererSpec.groovy index 88062d93ef..77158d5d4b 100644 --- a/grails-rest-transforms/src/test/groovy/org/grails/plugins/web/rest/render/hal/HalJsonRendererSpec.groovy +++ b/grails-rest-transforms/src/test/groovy/org/grails/plugins/web/rest/render/hal/HalJsonRendererSpec.groovy @@ -94,6 +94,8 @@ class HalJsonRendererSpec extends Specification { void cleanup() { RequestContextHolder.resetRequestAttributes() ShutdownOperations.runOperations() + // Clear the static mimeTypes cache after each test for parallel test isolation + HttpServletResponseExtension.@mimeTypes = null } boolean jsonEquals(String json1, String json2) { diff --git a/grails-test-suite-uber/src/test/groovy/org/grails/plugins/web/rest/render/BaseDomainClassRendererSpec.groovy b/grails-test-suite-uber/src/test/groovy/org/grails/plugins/web/rest/render/BaseDomainClassRendererSpec.groovy index 03383cf281..309854462b 100644 --- a/grails-test-suite-uber/src/test/groovy/org/grails/plugins/web/rest/render/BaseDomainClassRendererSpec.groovy +++ b/grails-test-suite-uber/src/test/groovy/org/grails/plugins/web/rest/render/BaseDomainClassRendererSpec.groovy @@ -64,6 +64,8 @@ abstract class BaseDomainClassRendererSpec extends Specification { void cleanup() { RequestContextHolder.resetRequestAttributes() + // Clear the static mimeTypes cache after each test for parallel test isolation + HttpServletResponseExtension.@mimeTypes = null } protected abstract Renderer getRenderer() diff --git a/grails-test-suite-uber/src/test/groovy/org/grails/web/util/WebUtilsTests.groovy b/grails-test-suite-uber/src/test/groovy/org/grails/web/util/WebUtilsTests.groovy index 561fb64bb4..d45b42f2c7 100644 --- a/grails-test-suite-uber/src/test/groovy/org/grails/web/util/WebUtilsTests.groovy +++ b/grails-test-suite-uber/src/test/groovy/org/grails/web/util/WebUtilsTests.groovy @@ -72,6 +72,8 @@ grails.mime.types = [ html: ['text/html','application/xhtml+xml'], @AfterEach void tearDown() { RequestContextHolder.resetRequestAttributes() + // Clear the static mimeTypes cache after each test for parallel test isolation + HttpServletResponseExtension.@mimeTypes = null } @Test diff --git a/grails-test-suite-web/src/test/groovy/org/grails/web/mime/ContentFormatControllerTests.groovy b/grails-test-suite-web/src/test/groovy/org/grails/web/mime/ContentFormatControllerTests.groovy index 01a861986d..68dea3c197 100644 --- a/grails-test-suite-web/src/test/groovy/org/grails/web/mime/ContentFormatControllerTests.groovy +++ b/grails-test-suite-web/src/test/groovy/org/grails/web/mime/ContentFormatControllerTests.groovy @@ -38,6 +38,11 @@ class ContentFormatControllerTests extends Specification implements ControllerUn HttpServletResponseExtension.@mimeTypes = null } + def cleanup() { + // Clear the static mimeTypes cache after each test for parallel test isolation + HttpServletResponseExtension.@mimeTypes = null + } + Closure doWithConfig() {{ c -> c['grails.mime.use.accept.header'] = true c['grails.mime.types'] = [html: ['text/html', 'application/xhtml+xml'],
