@@ -898,6 +898,23 @@ void shouldAttemptToResetResponseBufferIfCommitted() throws Exception {
898
898
assertThat (response .getHeader ("Test-Header" )).isEqualTo ("spring" );
899
899
}
900
900
901
+ @ Test
902
+ void shouldResetContentTypeIfNotCommitted () throws Exception {
903
+ StaticWebApplicationContext context = new StaticWebApplicationContext ();
904
+ context .setServletContext (getServletContext ());
905
+ context .registerSingleton ("/error" , ErrorController .class );
906
+ DispatcherServlet servlet = new DispatcherServlet (context );
907
+ servlet .init (servletConfig );
908
+
909
+ MockHttpServletRequest request = new MockHttpServletRequest (getServletContext (), "GET" , "/error" );
910
+ MockHttpServletResponse response = new MockHttpServletResponse ();
911
+ assertThatThrownBy (() -> servlet .service (request , response )).isInstanceOf (ServletException .class )
912
+ .hasCauseInstanceOf (IllegalArgumentException .class );
913
+ assertThat (response .getContentAsByteArray ()).isEmpty ();
914
+ assertThat (response .getStatus ()).isEqualTo (400 );
915
+ assertThat (response .getHeaderNames ()).doesNotContain (HttpHeaders .CONTENT_TYPE );
916
+ }
917
+
901
918
902
919
public static class ControllerFromParent implements Controller {
903
920
@@ -950,6 +967,7 @@ private static class ErrorController implements Controller {
950
967
public ModelAndView handleRequest (HttpServletRequest request , HttpServletResponse response ) throws Exception {
951
968
response .setStatus (400 );
952
969
response .setHeader ("Test-Header" , "spring" );
970
+ response .addHeader ("Content-Type" , "application/json" );
953
971
if (request .getAttribute ("commit" ) != null ) {
954
972
response .flushBuffer ();
955
973
}
0 commit comments