You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ba...@apache.org on 2007/05/18 04:14:38 UTC

svn commit: r539220 - in /myfaces/core/branches/jsf12: api/src/main/java/javax/faces/webapp/UIComponentClassicTagBase.java impl/src/main/java/org/apache/myfaces/taglib/core/VerbatimTag.java

Author: baranda
Date: Thu May 17 19:14:37 2007
New Revision: 539220

URL: http://svn.apache.org/viewvc?view=rev&rev=539220
Log:
Fixes MYFACES-1635 (Incorrect rendering of jsf tags interweaved with HTML)

Modified:
    myfaces/core/branches/jsf12/api/src/main/java/javax/faces/webapp/UIComponentClassicTagBase.java
    myfaces/core/branches/jsf12/impl/src/main/java/org/apache/myfaces/taglib/core/VerbatimTag.java

Modified: myfaces/core/branches/jsf12/api/src/main/java/javax/faces/webapp/UIComponentClassicTagBase.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/jsf12/api/src/main/java/javax/faces/webapp/UIComponentClassicTagBase.java?view=diff&rev=539220&r1=539219&r2=539220
==============================================================================
--- myfaces/core/branches/jsf12/api/src/main/java/javax/faces/webapp/UIComponentClassicTagBase.java (original)
+++ myfaces/core/branches/jsf12/api/src/main/java/javax/faces/webapp/UIComponentClassicTagBase.java Thu May 17 19:14:37 2007
@@ -176,7 +176,10 @@
             _childrenAdded = new ArrayList<String>();
         }
 
-        _childrenAdded.add(child.getId());
+        if (!_childrenAdded.contains(child.getId()))
+        {
+            _childrenAdded.add(child.getId());
+        }
     }
 
     /**
@@ -426,7 +429,7 @@
         // add the verbatim component
         if (verbatimComp != null && _parentClassicTag != null)
         {
-            addVerbatimAfterComponent(_parentClassicTag, verbatimComp, _componentInstance);
+            addVerbatimBeforeComponent(_parentClassicTag, verbatimComp, _componentInstance);
         }
 
         Map<String,Object> viewComponentIds = getViewComponentIds();
@@ -440,7 +443,7 @@
             tagInstance = (viewComponentIds.get(clientId) == this) ? this : null;
         }
 
-        if (tagInstance != null)
+        if (tagInstance == null)
         {
             // check for duplicated IDs
             if (_id != null)
@@ -640,29 +643,24 @@
         Set childrenAddedIds = (Set)
                 parent.getAttributes().get(FORMER_CHILD_IDS_SET_ATTR);
 
-         if (childrenAddedIds != null)
-         {
-             int parentIndex = children.indexOf(component);
 
-             boolean replacedVerbatim = false;
+        int parentIndex = children.indexOf(component);
 
-             if (childrenAddedIds.size() == parentIndex)
+         if (childrenAddedIds != null)
+         {
+             if (parentIndex > 0 && childrenAddedIds.size() == parentIndex)
              {
                  UIComponent formerVerbatim = children.get(parentIndex - 1);
 
                  if (formerVerbatim instanceof UIOutput && formerVerbatim.isTransient())
                  {
                      children.set(parentIndex - 1, verbatimComp);
-                     replacedVerbatim = true;
                  }
              }
-
-             if (!replacedVerbatim)
-             {
-                 children.add(parentIndex, verbatimComp);
-             }
          }
 
+        children.add(parentIndex, verbatimComp);
+
         parentTag.addChild(verbatimComp);
     }
 
@@ -1274,7 +1272,11 @@
         {
             parentTag._childrenAdded = new ArrayList<String>();
         }
-        parentTag._childrenAdded.add(id);
+
+        if (!parentTag._childrenAdded.contains(id))
+        {
+            parentTag._childrenAdded.add(id);
+        }
     }
 
     private int getAddedChildrenCount(UIComponentClassicTagBase parentTag)

Modified: myfaces/core/branches/jsf12/impl/src/main/java/org/apache/myfaces/taglib/core/VerbatimTag.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/jsf12/impl/src/main/java/org/apache/myfaces/taglib/core/VerbatimTag.java?view=diff&rev=539220&r1=539219&r2=539220
==============================================================================
--- myfaces/core/branches/jsf12/impl/src/main/java/org/apache/myfaces/taglib/core/VerbatimTag.java (original)
+++ myfaces/core/branches/jsf12/impl/src/main/java/org/apache/myfaces/taglib/core/VerbatimTag.java Thu May 17 19:14:37 2007
@@ -18,11 +18,11 @@
 import org.apache.myfaces.shared_impl.renderkit.JSFAttr;
 import org.apache.myfaces.shared_impl.taglib.UIComponentELTagBase;
 
+import javax.el.ValueExpression;
 import javax.faces.component.UIComponent;
 import javax.faces.component.UIOutput;
 import javax.servlet.jsp.JspException;
 import javax.servlet.jsp.tagext.BodyContent;
-import javax.el.ValueExpression;
 
 /**
  * @author Manfred Geiler (latest modification by $Author$)
@@ -77,6 +77,6 @@
             component.setValue(bodyContent.getString());
             bodyContent.clearBody();
         }
-        return super.doAfterBody();
+        return super.getDoAfterBodyValue();
     }
 }