You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Karl Kildén (JIRA)" <de...@myfaces.apache.org> on 2014/03/13 12:33:43 UTC

[jira] [Commented] (MYFACES-3869) Ids used by c:if, c:forEach and other facelet tags requires to be unique per facelet

    [ https://issues.apache.org/jira/browse/MYFACES-3869?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13933127#comment-13933127 ] 

Karl Kildén commented on MYFACES-3869:
--------------------------------------

Hi, I tried 2.2.2-20140313.024403-5

This is my exception in 9/10 cases. 

mar 13, 2014 10:51:27 FM org.omnifaces.exceptionhandler.FullAjaxExceptionHandler logException
SEVERE: FullAjaxExceptionHandler: An exception occurred during rendering JSF ajax response. Error page '/pages/ajaxError.xhtml' CANNOT be shown as response is already committed. Consider increasing 'javax.faces.FACELETS_BUFFER_SIZE' if it really needs to be handled.
org.apache.myfaces.view.facelets.compiler.DuplicateIdException: Component with duplicate id "f:j_id_2b_13_1_0_2_4_1" found. The first component is /WEB-INF/tags/gridHeader.xhtml at line 18 and column 86
	at org.apache.myfaces.view.facelets.compiler.CheckDuplicateIdFaceletUtils.createAndQueueException(CheckDuplicateIdFaceletUtils.java:152)
	at org.apache.myfaces.view.facelets.compiler.CheckDuplicateIdFaceletUtils.checkIds(CheckDuplicateIdFaceletUtils.java:107)
	at org.apache.myfaces.view.facelets.compiler.CheckDuplicateIdFaceletUtils.checkIds(CheckDuplicateIdFaceletUtils.java:124)
	at org.apache.myfaces.view.facelets.compiler.CheckDuplicateIdFaceletUtils.checkIds(CheckDuplicateIdFaceletUtils.java:124)
	at org.apache.myfaces.view.facelets.compiler.CheckDuplicateIdFaceletUtils.checkIds(CheckDuplicateIdFaceletUtils.java:118)
	at org.apache.myfaces.view.facelets.compiler.CheckDuplicateIdFaceletUtils.checkIds(CheckDuplicateIdFaceletUtils.java:124)
	at org.apache.myfaces.view.facelets.compiler.CheckDuplicateIdFaceletUtils.checkIds(CheckDuplicateIdFaceletUtils.java:124)
	at org.apache.myfaces.view.facelets.compiler.CheckDuplicateIdFaceletUtils.checkIds(CheckDuplicateIdFaceletUtils.java:124)
	at org.apache.myfaces.view.facelets.compiler.CheckDuplicateIdFaceletUtils.checkIds(CheckDuplicateIdFaceletUtils.java:124)
	at org.apache.myfaces.view.facelets.compiler.CheckDuplicateIdFaceletUtils.checkIds(CheckDuplicateIdFaceletUtils.java:124)
	at org.apache.myfaces.view.facelets.compiler.CheckDuplicateIdFaceletUtils.checkIds(CheckDuplicateIdFaceletUtils.java:89)
	at org.apache.myfaces.view.facelets.DefaultFaceletsStateManagementStrategy.saveView(DefaultFaceletsStateManagementStrategy.java:618)
	at org.apache.myfaces.application.StateManagerImpl.saveView(StateManagerImpl.java:213)
	at javax.faces.application.StateManager.getViewState(StateManager.java:262)
	at org.apache.myfaces.context.servlet.PartialViewContextImpl.processPartialRendering(PartialViewContextImpl.java:581)
	at org.apache.myfaces.context.servlet.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:415)
	at org.primefaces.context.PrimePartialViewContext.processPartial(PrimePartialViewContext.java:57)
	at javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:85)
	at javax.faces.component.UIViewRoot.encodeChildren(UIViewRoot.java:516)
	at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:541)
	at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.renderView(FaceletViewDeclarationLanguage.java:1891)
	at org.apache.myfaces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:313)
	at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:57)
	at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:57)
	at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:116)
	at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:267)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:200)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at com.company.product.web.common.SessionFilter.doFilter(SessionFilter.java:105)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
	at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:611)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:722)

> Ids used by c:if, c:forEach and other facelet tags requires to be unique per facelet
> ------------------------------------------------------------------------------------
>
>                 Key: MYFACES-3869
>                 URL: https://issues.apache.org/jira/browse/MYFACES-3869
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: JSR-314, JSR-344
>            Reporter: Leonardo Uribe
>            Assignee: Leonardo Uribe
>
> As part of MYFACES-3867, it was found in some cases where parts of the tree are changed by effect of a ui:include tag, the facelet tag ids used by c:if or c:forEach for example are not unique enough. 
> The fix is apply the same logic used in DefaultFaceletContext.generateUniqueId(...), which is use a combination between a facelet hierarchy hashcode and the tagId, which is associated to the position of the tag in the page.



--
This message was sent by Atlassian JIRA
(v6.2#6252)