Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 1.7, 1.7.1, 1.7.2, 1.7.2 SP1
-
Component/s: ICE-Components
-
Labels:None
-
Environment:ANY
Description
<ice:form>
<ice:panelSeries value="#{bean.list}" var="item">
<ice:panelGroup rendered="false">
<ice:panelTabSet id="icePnlTbSet" var="tab"
value="#{bean.listqq}" title="title">
<ice:panelTab label="#{tab}" title="#{tab}">
<ice:panelGroup style="height:50px;">
<ice:outputText value="#{tab}" />
</ice:panelGroup>
</ice:panelTab>
</ice:panelTabSet>
<!--
<ice:outputText value="#{bean.qq}"/>
-->
</ice:panelGroup>
</ice:panelSeries>
</ice:form>
It will complain undefined property "listqq" in the bean which should not be rendered at all. To compare, uncomment the outputText and it has no problem.
This is also a problem for ice:dataTable
-
Hide
- ICE-4066.war
- 4.88 MB
- Sam Xiao
-
- META-INF/MANIFEST.MF 0.0 kB
- WEB-INF/lib/backport-util-concurrent.jar 319 kB
- WEB-INF/lib/commons-digester.jar 140 kB
- WEB-INF/lib/icefaces-comps.jar 1.71 MB
- main.jspx 1 kB
- WEB-INF/lib/jsf-impl-1.2.jar 813 kB
- WEB-INF/lib/commons-el.jar 110 kB
- WEB-INF/lib/commons-discovery.jar 70 kB
- WEB-INF/lib/jsf-api-1.2.jar 353 kB
- WEB-INF/lib/commons-beanutils.jar 184 kB
- WEB-INF/lib/jstl.jar 17 kB
- WEB-INF/classes/support/TestBean.class 0.7 kB
- WEB-INF/faces-config.xml 0.4 kB
- WEB-INF/lib/commons-fileupload.jar 87 kB
- index.jsp 0.2 kB
- WEB-INF/lib/icefaces.jar 990 kB
- WEB-INF/web.xml 4 kB
- WEB-INF/classes/support/TestBean.java 0.4 kB
- WEB-INF/lib/commons-logging.jar 52 kB
- WEB-INF/lib/commons-collections.jar 558 kB
Issue Links
- depends on
-
ICE-4253 REGRESSION of ICE-4066 : input component values being applied to all rows in a dataTable
- Closed
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion
Modified: D:\work\development\head\svn\ossrepo\icefaces\trunk\icefaces\component\src\com\icesoft\faces\component\panelseries\UISeries.java
Modified: D:\work\development\head\svn\ossrepo\icefaces\trunk\icefaces\component\src\com\icesoft\faces\component\paneltabset\PanelTabSet.java
Modified: D:\work\development\head\svn\ossrepo\icefaces\trunk\icefaces\component\src\com\icesoft\faces\component\util\CustomComponentUtils.java
Sending content: D:\work\development\head\svn\ossrepo\icefaces\trunk\icefaces\component\src\com\icesoft\faces\component\panelseries\UISeries.java
Sending content: D:\work\development\head\svn\ossrepo\icefaces\trunk\icefaces\component\src\com\icesoft\faces\component\paneltabset\PanelTabSet.java
Sending content: D:\work\development\head\svn\ossrepo\icefaces\trunk\icefaces\component\src\com\icesoft\faces\component\util\CustomComponentUtils.java
Completed: At revision: 18366
Fix backported to 1.7 branch:
Modified: D:\work\development\freshcopy\svn\ossrepo\icefaces\branches\icefaces-1.7\icefaces\component\src\com\icesoft\faces\component\panelseries\UISeries.java
Modified: D:\work\development\freshcopy\svn\ossrepo\icefaces\branches\icefaces-1.7\icefaces\component\src\com\icesoft\faces\component\paneltabset\PanelTabSet.java
Modified: D:\work\development\freshcopy\svn\ossrepo\icefaces\branches\icefaces-1.7\icefaces\component\src\com\icesoft\faces\component\util\CustomComponentUtils.java
Sending content: D:\work\development\freshcopy\svn\ossrepo\icefaces\branches\icefaces-1.7\icefaces\component\src\com\icesoft\faces\component\panelseries\UISeries.java
Sending content: D:\work\development\freshcopy\svn\ossrepo\icefaces\branches\icefaces-1.7\icefaces\component\src\com\icesoft\faces\component\paneltabset\PanelTabSet.java
Sending content: D:\work\development\freshcopy\svn\ossrepo\icefaces\branches\icefaces-1.7\icefaces\component\src\com\icesoft\faces\component\util\CustomComponentUtils.java
Completed: At revision: 18426
QA tested it successfully on ICEfaces-1.8.0 build 3 + tomcat6 for IE6, FF2, Opera9.27. Both ice:panelTabSet and ice:dataTable passed the test.
Follow-up regression created by this fix is noted in ICE-4253.
verified on 1.7.2-SP2 build 3 with success (tomcat 6 + IE6 and FF2)
The problem has been fixed only partially. As I see in the code:
public Object getValue() { try { return super.getValue(); } catch (Exception e) { //ICE-4066 if (CustomComponentUtils.isAncestorRendered(this)) { throw new FacesException(e); } } return null; }
the method isAncestorRenderer finds the first ancestor and evaluates its rendered attribute. But what if ancestor rendered attribute is a value binding, and that ancestor should not be rendered at all ? Value binding is correct only for this panelGroup which is not rendered too. Below is a sample code:
<ice:panelSeries value="#{bean.list}" var="item"> <ice:panelGroup rendered="false"> <ice:panelPopup rendered="#{bean.visible}"> <ice:panelTabSet id="icePnlTbSet" var="tab" value="#{bean.listqq}" title="title"> <ice:panelTab label="#{tab}" title="#{tab}"> <ice:panelGroup style="height:50px;"> <ice:outputText value="#{tab}" /> </ice:panelGroup> </ice:panelTab> </ice:panelTabSet> </ice:panelPopup> </ice:panelGroup> </ice:panelSeries>
test case for tomcat 6.0 with ICEfaces 1.7.2 SP1