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

nmalin pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 8b5bd93  Fixed: Use platform specific failed on CompoundWidget 
(OFBIZ-12283)
8b5bd93 is described below

commit 8b5bd93d3a3d7e9516ec5059a0c5a496b5c1b9b3
Author: Nicolas Malin <nicolas.ma...@nereide.fr>
AuthorDate: Thu Jul 22 21:37:09 2021 +0200

    Fixed: Use platform specific failed on CompoundWidget (OFBIZ-12283)
    
    When you use a platform-specific element on CompoundWidget like this :
    
         <ws:platform-specific>
            <ws:html><ws:html-template location="component ..."/></ws:html>
         </ws:platform-specific>
    
    the ModelScreenWidget failed to resolve the attended type due to the
    namespace presence (ws:html != html) and finally failed to rendering the 
screen
    
    Complete the previous commit where I forgot this part
---
 .../java/org/apache/ofbiz/widget/model/HtmlWidget.java  | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git 
a/framework/widget/src/main/java/org/apache/ofbiz/widget/model/HtmlWidget.java 
b/framework/widget/src/main/java/org/apache/ofbiz/widget/model/HtmlWidget.java
index f175044..45bb9fa 100644
--- 
a/framework/widget/src/main/java/org/apache/ofbiz/widget/model/HtmlWidget.java
+++ 
b/framework/widget/src/main/java/org/apache/ofbiz/widget/model/HtmlWidget.java
@@ -29,6 +29,7 @@ import freemarker.template.TemplateModelException;
 import freemarker.template.Version;
 import org.apache.ofbiz.base.util.Debug;
 import org.apache.ofbiz.base.util.GeneralException;
+import org.apache.ofbiz.base.util.StringUtil;
 import org.apache.ofbiz.base.util.UtilCodec;
 import org.apache.ofbiz.base.util.UtilGenerics;
 import org.apache.ofbiz.base.util.UtilHtml;
@@ -128,13 +129,19 @@ public class HtmlWidget extends ModelScreenWidget {
         } else {
             List<ModelScreenWidget> subWidgets = new 
ArrayList<>(childElementList.size());
             for (Element childElement : childElementList) {
-                if ("html-template".equals(childElement.getNodeName())) {
+                String childNodeName = childElement.getNodeName().contains(":")
+                        ? StringUtil.split(childElement.getNodeName(), 
":").get(1)
+                        : childElement.getNodeName();
+                switch (childNodeName) {
+                case "html-template":
                     subWidgets.add(new HtmlTemplate(modelScreen, 
childElement));
-                } else if 
("html-template-decorator".equals(childElement.getNodeName())) {
+                    break;
+                case "html-template-decorator":
                     subWidgets.add(new HtmlTemplateDecorator(modelScreen, 
childElement));
-                } else {
-                    throw new IllegalArgumentException("Tag not supported 
under the platform-specific -> html tag with name: "
-                            + childElement.getNodeName());
+                    break;
+                default:
+                    throw new IllegalArgumentException("Tag not supported 
under the platform-specific -> html tag with name: " +
+                            childElement.getNodeName());
                 }
             }
             this.subWidgets = Collections.unmodifiableList(subWidgets);

Reply via email to