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'],

Reply via email to