You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ja...@apache.org on 2010/03/10 14:35:43 UTC

svn commit: r921345 - /myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/impl/DefaultFacelet.java

Author: jakobk
Date: Wed Mar 10 13:35:43 2010
New Revision: 921345

URL: http://svn.apache.org/viewvc?rev=921345&view=rev
Log:
MYFACES-2598 UIViewParameter does not get an automatic id

Modified:
    myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/impl/DefaultFacelet.java

Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/impl/DefaultFacelet.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/impl/DefaultFacelet.java?rev=921345&r1=921344&r2=921345&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/impl/DefaultFacelet.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/impl/DefaultFacelet.java Wed Mar 10 13:35:43 2010
@@ -39,6 +39,7 @@ import javax.el.ExpressionFactory;
 import javax.faces.FacesException;
 import javax.faces.application.Resource;
 import javax.faces.component.UIComponent;
+import javax.faces.component.UniqueIdVendor;
 import javax.faces.context.FacesContext;
 import javax.faces.view.facelets.FaceletContext;
 import javax.faces.view.facelets.FaceletException;
@@ -98,11 +99,23 @@ final class DefaultFacelet extends Facel
             FaceletException, ELException
     {
         DefaultFaceletContext ctx = new DefaultFaceletContext(facesContext, this);
+        // push the parent as a UniqueIdVendor to the stack here
+        if (parent instanceof UniqueIdVendor)
+        {
+            ctx.pushUniqueIdVendorToStack((UniqueIdVendor) parent);
+        }
+        
         this.refresh(parent);
         ComponentSupport.markForDeletion(parent);
         _root.apply(ctx, parent);
         ComponentSupport.finalizeForDeletion(parent);
         this.markApplied(parent);
+        
+        // remove the UIViewRoot from the UniqueIdVendor stack
+        if (parent instanceof UniqueIdVendor)
+        {
+            ctx.popUniqueIdVendorToStack();
+        }
     }
 
     private final void refresh(UIComponent c)