You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by me...@apache.org on 2024/12/23 14:55:55 UTC

(myfaces) branch main updated: MYFACES-4703: Default content type if Accept header invalid (#823)

This is an automated email from the ASF dual-hosted git repository.

melloware pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/myfaces.git


The following commit(s) were added to refs/heads/main by this push:
     new 898bad296 MYFACES-4703: Default content type if Accept header invalid (#823)
898bad296 is described below

commit 898bad296babff4a07bd84832144fb2967c47c25
Author: Melloware <me...@gmail.com>
AuthorDate: Mon Dec 23 09:55:49 2024 -0500

    MYFACES-4703: Default content type if Accept header invalid (#823)
---
 .../myfaces/renderkit/html/HtmlRenderKitImpl.java  |  7 ++-----
 .../myfaces/renderkit/HtmlRenderKitImplTest.java   | 23 ++++++++--------------
 2 files changed, 10 insertions(+), 20 deletions(-)

diff --git a/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlRenderKitImpl.java b/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlRenderKitImpl.java
index 77385d253..2bba6a40b 100755
--- a/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlRenderKitImpl.java
+++ b/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlRenderKitImpl.java
@@ -304,11 +304,8 @@ public class HtmlRenderKitImpl extends RenderKit implements LazyRenderKit
                     {
                         // Note this case falls when contentTypeListStringFromAccept == null and 
                         // contentTypeListString != null, but since this not an ajax request, 
-                        // contentTypeListString should be taken strictly and throw IllegalArgumentException
-                        throw new IllegalArgumentException(
-                                "ContentTypeList does not contain a supported content type: "
-                                        + ((contentTypeListString != null) ? 
-                                                contentTypeListString : contentTypeListStringFromAccept) );
+                        // contentTypeListString should fall back to default (MYFACES-4703)
+                        selectedContentType = myfacesConfig.getDefaultResponseWriterContentTypeMode();
                     }
                 }
             }
diff --git a/impl/src/test/java/org/apache/myfaces/renderkit/HtmlRenderKitImplTest.java b/impl/src/test/java/org/apache/myfaces/renderkit/HtmlRenderKitImplTest.java
index 2bd77a034..804b6d75a 100644
--- a/impl/src/test/java/org/apache/myfaces/renderkit/HtmlRenderKitImplTest.java
+++ b/impl/src/test/java/org/apache/myfaces/renderkit/HtmlRenderKitImplTest.java
@@ -101,21 +101,14 @@ public class HtmlRenderKitImplTest extends AbstractFacesTestCase
     @Test
     public void testCreateResponseWriterContentType6()
     {
-        try
-        {
-            MyfacesConfig config = new MyfacesConfig();
-            facesContext.getExternalContext().getApplicationMap().put(MyfacesConfig.class.getName(), config);
-            request.addHeader("Accept", "image/png"); //Webkit
-            HtmlRenderKitImpl renderKit = new HtmlRenderKitImpl();
-            StringWriter writer = new StringWriter();
-            HtmlResponseWriterImpl responseWriter = (HtmlResponseWriterImpl) renderKit.createResponseWriter(writer, null, null);
-            
-            Assertions.fail();
-        }
-        catch (IllegalArgumentException e)
-        {
-            // expected
-        }
+        MyfacesConfig config = new MyfacesConfig();
+        facesContext.getExternalContext().getApplicationMap().put(MyfacesConfig.class.getName(), config);
+        request.addHeader("Accept", "text/plain"); //Invalid Type falls back to default
+        HtmlRenderKitImpl renderKit = new HtmlRenderKitImpl();
+        StringWriter writer = new StringWriter();
+        HtmlResponseWriterImpl responseWriter = (HtmlResponseWriterImpl) renderKit.createResponseWriter(writer, null, null);
+        Assertions.assertEquals(ContentTypeUtils.HTML_CONTENT_TYPE, responseWriter.getContentType());
+        Assertions.assertEquals(ContentTypeUtils.HTML_CONTENT_TYPE, responseWriter.getWriterContentTypeMode());
     }
     
     @Test