Bug 1323920 - [GSS](6.4.z) JAVASERVERFACES-3545 - ComponentSupport.getFaceletComponentMap() returns wrong components when using dynamic includes / JAVASERVERFACES-3698
Summary: [GSS](6.4.z) JAVASERVERFACES-3545 - ComponentSupport.getFaceletComponentMap()...
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: JBoss Enterprise Application Platform 6
Classification: JBoss
Component: JSF
Version: 6.4.6
Hardware: Unspecified
OS: Unspecified
urgent
urgent
Target Milestone: CR1
: EAP 6.4.9
Assignee: Chao Wang
QA Contact: Pavol Pitonak
URL:
Whiteboard:
Depends On:
Blocks: 1323925 1323929 eap649-payload 1326166
TreeView+ depends on / blocked
 
Reported: 2016-04-05 05:24 UTC by Kunjan Rathod
Modified: 2019-11-14 07:43 UTC (History)
11 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2017-01-17 12:56:50 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
The error is reproducible using the attached war (12.44 KB, application/zip)
2016-04-05 05:24 UTC, Kunjan Rathod
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Red Hat Bugzilla 1323925 0 unspecified CLOSED [GSS](6.4.z) Upgrade to Mojarra JSF Impl from 2.1.28.SP9 to 2.1.28.SP10 2021-02-22 00:41:40 UTC
Red Hat Bugzilla 1323929 0 unspecified CLOSED [GSS](6.4.z) Upgrade JSF API from 2.1.28.SP1 to 2.1.28.SP2 2021-02-22 00:41:40 UTC
Red Hat Knowledge Base (Solution) 2210051 0 None None None 2016-06-29 05:24:48 UTC

Internal Links: 1323925 1323929

Description Kunjan Rathod 2016-04-05 05:24:18 UTC
Created attachment 1143668 [details]
The error is reproducible using the attached war

Description of problem:

ComponentSupport.getFaceletComponentMap() returns wrong components when using dynamic includes


Version-Release number of selected component (if applicable):


How reproducible:

When switching back and forth between the tabs, the components for <h:inputText/> are getting mixed up and the content of the tabs show wrong values.

Steps to Reproduce:
Snippet of the example's view:
<h:panelGroup layout="block">
<h:commandLink value="Tab 0" style="margin-right: 10px;">
<f:ajax event="click" execute="@form" render="@form"
listener="#
{TestBean.tab0Click}
" />
</h:commandLink>
<h:commandLink value="Tab 1">
<f:ajax event="click" execute="@form" render="@form"
listener="#
{TestBean.tab1Click}
" />
</h:commandLink>
<f:subview id="tab1">
<c:if test="#
{TestBean.tab0Expanded}
">
Tab 0: 
<base:inputText id="tab1txt" bean="#
{TestBean.bean0}
" />
</c:if>
</f:subview>
<f:subview id="tab2">
<c:if test="#
{TestBean.tab1Expanded}
">
Tab 1: 
<base:inputText id="tab2txt" bean="#
{TestBean.bean1}
" />
</c:if>
</f:subview>
</h:panelGroup>
The example also includes a workaround for the issue. Uncomment the tag-handler-delegate-factory in faces-config.xml and the issue disappears.
Basis of the workaround is a custom FaceletContext that is adding the parent component id the every tag id. Then the ids are always unique even when there are dynamic contents involved. Please comment if this is a feasible way to go because I am not sure if this has any side effects.

Actual results:


Expected results:


Additional info:

https://java.net/jira/browse/JAVASERVERFACES-3545
https://java.net/jira/browse/JAVASERVERFACES-3698

Comment 11 Petr Penicka 2017-01-17 12:56:50 UTC
Retroactively bulk-closing issues from released EAP 6.4 cummulative patches.


Note You need to log in before you can comment on or make changes to this bug.