You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ta...@apache.org on 2022/02/15 06:54:43 UTC

[myfaces] branch 2.3-next updated: Fix MYFACES-4428 - Separate "begin tag" code from "end tag" code in HtmlTextRendererBase / HtmlSecretRendererBase (#229)

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

tandraschko pushed a commit to branch 2.3-next
in repository https://gitbox.apache.org/repos/asf/myfaces.git


The following commit(s) were added to refs/heads/2.3-next by this push:
     new 4053c67  Fix MYFACES-4428 -  Separate "begin tag" code from "end tag" code in HtmlTextRendererBase / HtmlSecretRendererBase (#229)
4053c67 is described below

commit 4053c67ef4c43a8a4eeee0ae070a48e7fda67909
Author: Jonathan S. Fisher <ex...@gmail.com>
AuthorDate: Tue Feb 15 00:54:38 2022 -0600

    Fix MYFACES-4428 -  Separate "begin tag" code from "end tag" code in HtmlTextRendererBase / HtmlSecretRendererBase (#229)
---
 .../html/base/HtmlSecretRendererBase.java          | 35 ++++++++++++----------
 .../renderkit/html/base/HtmlTextRendererBase.java  | 27 ++++++++++++++---
 .../renderkit/html/HtmlSecretRendererTest.java     |  1 +
 .../renderkit/html/HtmlTextRendererTest.java       |  2 ++
 4 files changed, 45 insertions(+), 20 deletions(-)

diff --git a/impl/src/main/java/org/apache/myfaces/renderkit/html/base/HtmlSecretRendererBase.java b/impl/src/main/java/org/apache/myfaces/renderkit/html/base/HtmlSecretRendererBase.java
index c49c46e..b4d43ea 100644
--- a/impl/src/main/java/org/apache/myfaces/renderkit/html/base/HtmlSecretRendererBase.java
+++ b/impl/src/main/java/org/apache/myfaces/renderkit/html/base/HtmlSecretRendererBase.java
@@ -48,25 +48,28 @@ public class HtmlSecretRendererBase extends HtmlRenderer
     private static final String AUTOCOMPLETE_VALUE_OFF = "off";
 
     @Override
+    public void encodeBegin(FacesContext facesContext, UIComponent uiComponent) throws IOException
+    {
+      RendererUtils.checkParamValidity(facesContext, uiComponent, UIInput.class);
+
+      ResponseWriter writer = facesContext.getResponseWriter();
+      
+      Map<String, List<ClientBehavior>> behaviors = null;
+      if (uiComponent instanceof ClientBehaviorHolder)
+      {
+          behaviors = ((ClientBehaviorHolder) uiComponent).getClientBehaviors();
+          if (!behaviors.isEmpty())
+          {
+              ResourceUtils.renderDefaultJsfJsInlineIfNecessary(facesContext, writer);
+          }
+      }
+      //allow subclasses to render custom attributes by separating rendering begin and end
+      renderInputBegin(facesContext, uiComponent);
+    }
+
     public void encodeEnd(FacesContext facesContext, UIComponent uiComponent)
             throws IOException
     {
-        RendererUtils.checkParamValidity(facesContext, uiComponent, UIInput.class);
-
-        ResponseWriter writer = facesContext.getResponseWriter();
-        
-        Map<String, List<ClientBehavior>> behaviors = null;
-        if (uiComponent instanceof ClientBehaviorHolder)
-        {
-            behaviors = ((ClientBehaviorHolder) uiComponent).getClientBehaviors();
-            if (!behaviors.isEmpty())
-            {
-                ResourceUtils.renderDefaultJsfJsInlineIfNecessary(facesContext, writer);
-            }
-        }
-        
-        //allow subclasses to render custom attributes by separating rendering begin and end
-        renderInputBegin(facesContext, uiComponent);
         renderInputEnd(facesContext, uiComponent);
     }
 
diff --git a/impl/src/main/java/org/apache/myfaces/renderkit/html/base/HtmlTextRendererBase.java b/impl/src/main/java/org/apache/myfaces/renderkit/html/base/HtmlTextRendererBase.java
index 7413dfa..fd001ba 100644
--- a/impl/src/main/java/org/apache/myfaces/renderkit/html/base/HtmlTextRendererBase.java
+++ b/impl/src/main/java/org/apache/myfaces/renderkit/html/base/HtmlTextRendererBase.java
@@ -53,6 +53,27 @@ public class HtmlTextRendererBase
     private static final String AUTOCOMPLETE_VALUE_OFF = "off";
 
     @Override
+    public void encodeBegin(FacesContext facesContext, UIComponent component) throws IOException
+    {
+      RendererUtils.checkParamValidity(facesContext,component,null);
+      
+      Map<String, List<ClientBehavior>> behaviors = null;
+      if (component instanceof ClientBehaviorHolder)
+      {
+          behaviors = ((ClientBehaviorHolder) component).getClientBehaviors();
+          if (!behaviors.isEmpty())
+          {
+              ResourceUtils.renderDefaultJsfJsInlineIfNecessary(facesContext, facesContext.getResponseWriter());
+          }
+      }
+      
+      if (component instanceof UIInput)
+      {
+          renderInputBegin(facesContext, component);
+      }
+    }
+
+    @Override
     public void encodeEnd(FacesContext facesContext, UIComponent component) throws IOException
     {
         RendererUtils.checkParamValidity(facesContext,component,null);
@@ -69,7 +90,7 @@ public class HtmlTextRendererBase
         
         if (component instanceof UIInput)
         {
-            renderInput(facesContext, component);
+            renderInputEnd(facesContext, component);
         }
         else if (component instanceof UIOutput)
         {
@@ -173,12 +194,10 @@ public class HtmlTextRendererBase
         return true;
     }
 
+    @Deprecated
     protected void renderInput(FacesContext facesContext, UIComponent component)
         throws IOException
     {
-        //allow subclasses to render custom attributes by separating rendering begin and end 
-        renderInputBegin(facesContext, component);
-        renderInputEnd(facesContext, component);
     }
 
     //Subclasses can set the value of an attribute before, or can render a custom attribute after calling this method
diff --git a/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlSecretRendererTest.java b/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlSecretRendererTest.java
index 42ac4b6..c7a839e 100644
--- a/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlSecretRendererTest.java
+++ b/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlSecretRendererTest.java
@@ -69,6 +69,7 @@ public class HtmlSecretRendererTest extends AbstractJsfTestCase
 
     public void testInputTextDefault() throws Exception
     {
+        inputText.encodeBegin(facesContext);
         inputText.encodeEnd(facesContext);
         facesContext.renderResponse();
 
diff --git a/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlTextRendererTest.java b/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlTextRendererTest.java
index b06874c..083e020 100644
--- a/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlTextRendererTest.java
+++ b/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlTextRendererTest.java
@@ -93,6 +93,7 @@ public class HtmlTextRendererTest extends AbstractJsfTestCase
         outputText.setValue("Output");
         outputText.setStyleClass("myStyleClass");
 
+        outputText.encodeBegin(facesContext);
         outputText.encodeEnd(facesContext);
         facesContext.renderResponse();
 
@@ -111,6 +112,7 @@ public class HtmlTextRendererTest extends AbstractJsfTestCase
         outputText.setValue("Output");
         outputText.setEscape(true);
 
+        outputText.encodeBegin(facesContext);
         outputText.encodeEnd(facesContext);
         facesContext.renderResponse();