[ https://issues.apache.org/jira/browse/MYFACES-3668?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13538187#comment-13538187 ]
Leonardo Uribe commented on MYFACES-3668: ----------------------------------------- It is probably a bug, just that it is hard to see it at first view. I can't reproduce it, but I found the change that create the problem: https://issues.apache.org/jira/browse/MYFACES-3373 UIForm.createUniqueId should take into account prependId logic The problem is related to https://issues.apache.org/jira/browse/MYFACES-3663 UIViewRoot.createUniqueId() should generate unique ids for all the component tree. I think in your case there should be one component programatically added by a third party library that changes the order of the generated ids. If the order changes, the action is not executed the first time. I suppose if you set prependId to true it will work. > CLONE - UIForm.createUniqueId should take into account prependId logic > ---------------------------------------------------------------------- > > Key: MYFACES-3668 > URL: https://issues.apache.org/jira/browse/MYFACES-3668 > Project: MyFaces Core > Issue Type: Bug > Components: JSR-314 > Reporter: Zhao Koh > Assignee: Leonardo Uribe > Fix For: 2.0.10, 2.1.4 > > > If prependId="false", the generated id should get an unique id from the > parent naming container of UIForm, to ensure uniqueness on id generation. > Reported by Zhao Koh on dev list : MyFaces 2.1.8 - Issues with composite > component renderFacet > Hi all, > I am currently using MyFaces 2.1.8 but discovered an issue with composite > component renderFacet - and this issue started at version 2.1.4. > The following describes the problem: > I have a composite component called buttonSelectBox that uses > composite:renderFacet to inject content from client - nothing fancy, only a > span that surrounds the content. > <html xmlns="http://www.w3.org/1999/xhtml" > xmlns:h="http://java.sun.com/jsf/html" > xmlns:f="http://java.sun.com/jsf/core" > xmlns:c="http://java.sun.com/jsp/jstl/core" > xmlns:ui="http://java.sun.com/jsf/facelets" > xmlns:composite="http://java.sun.com/jsf/composite" > xmlns:p="http://primefaces.org/ui"> > <composite:interface> > <composite:attribute name="compId" required="true" /> > <composite:attribute name="defaultText" required="true" /> > <composite:facet name="content" required="false" /> > </composite:interface> > <composite:implementation> > <span class="buttonlink"> > <composite:renderFacet name="content" /> > </span> > </composite:implementation> > </html> > Then I have a facelet page that uses this composite component and a standard > <h:commandButton> that invokes an action. > <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" > "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> > <html xmlns="http://www.w3.org/1999/xhtml" > xmlns:h="http://java.sun.com/jsf/html" > xmlns:c="http://java.sun.com/jsp/jstl/core" > xmlns:f="http://java.sun.com/jsf/core" > xmlns:ui="http://java.sun.com/jsf/facelets" > xmlns:custom="http://java.sun.com/jsf/composite/components" > xmlns:p="http://primefaces.org/ui" > xmlns:pe="http://primefaces.org/ui/extensions" > lang="en"> > <h:head> > </h:head> > <h:body> > <div class="container"> > > <div class="row"> > <div id="workspace"> > <h:form id="taskListForm" prependId="false"> > <custom:buttonSelectBox > compId="myLinksMenu" defaultText="2222"> > <f:facet name="content"> > <ul> > <li><a href="#">My > Preferences</a></li> > </ul> > <ul> > <li><a href="#">My > Profile</a></li> > <li><a > href="#{facesContext.externalContext.requestContextPath}/logout">Logout</a></li> > > </ul> > </f:facet> > </custom:buttonSelectBox> > > <h:commandButton > action="#{testBean.buttonAction}" value="Click ME" /> > </h:form> > </div> > </div> > </div> > > </h:body> > </html> -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira