Details
-
Type:
Bug
-
Status: Closed
-
Priority:
Major
-
Resolution: Duplicate
-
Affects Version/s: 2.0-Beta2
-
Fix Version/s: None
-
Component/s: ICE-Components
-
Labels:None
-
Environment:Found problem using Liferay 6.0.5 + Tomcat 6.0.26 + PortletFaces-Bridge-2.0.0-BETA2 but I don't think it's a portlet specific problem. Should be a problem in a webapp too.
Description
Here's some XHTML that I was using to create the composite component:
<?xml version="1.0" encoding="UTF-8"?>
<ui:component xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:cc="http://java.sun.com/jsf/composite" xmlns:ice="http://www.icesoft.com/icefaces/component"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3.org/1999/xhtml http://www.w3.org/2002/08/xhtml/xhtml1-transitional.xsd">
<cc:interface>
<cc:attribute name="for" required="true" />
<cc:attribute name="value" default="#{i18n['showing-x-x-of-x-results']}" required="false" />
<cc:attribute name="style" required="false" />
<cc:attribute name="styleClass" required="false" />
</cc:interface>
<cc:implementation>
<ice:dataPaginator for="#{cc.attrs.for}" firstRowIndexVar="firstRowIndex" lastRowIndexVar="lastRowIndex" pageCountVar="pageCount" pageIndexVar="pageIndex"
rendered="#{cc.rendered}" rowsCountVar="rowsCount" style="#{cc.attrs.style}" styleClass="#{cc.attrs.styleClass} search-results">
<ice:outputFormat value="#{value}">
<f:param value="#{firstRowIndex}" />
<f:param value="#{lastRowIndex}" />
<f:param value="#{rowsCount}" />
<f:param value="#{pageIndex}" />
<f:param value="#{pageCount}" />
</ice:outputFormat>
</ice:dataPaginator>
</cc:implementation>
</ui:component>
And here is the error I get when I try to use the composite component with <foo:iceInfoDataPaginator for="mytable" />
java.lang.IllegalArgumentException: could not find UIData referenced by attribute dataScroller@for = 'fooey'
at com.icesoft.faces.component.datapaginator.DataPaginator.findUIData(DataPaginator.java:338)
at com.icesoft.faces.component.datapaginator.DataPaginator.getUIData(DataPaginator.java:227)
at com.icesoft.faces.component.datapaginator.DataPaginator.isModelResultSet(DataPaginator.java:1106)
at com.icesoft.faces.component.datapaginator.DataPaginatorRenderer.encodeBegin(DataPaginatorRenderer.java:205)
at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:823)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:298)
at com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:101)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:848)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1613)
at com.sun.faces.renderkit.html_basic.CompositeRenderer.encodeChildren(CompositeRenderer.java:75)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:848)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:300)
at com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:101)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:848)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:300)
at com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:101)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:848)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:300)
at com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:101)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:848)
<?xml version="1.0" encoding="UTF-8"?>
<ui:component xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:cc="http://java.sun.com/jsf/composite" xmlns:ice="http://www.icesoft.com/icefaces/component"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3.org/1999/xhtml http://www.w3.org/2002/08/xhtml/xhtml1-transitional.xsd">
<cc:interface>
<cc:attribute name="for" required="true" />
<cc:attribute name="value" default="#{i18n['showing-x-x-of-x-results']}" required="false" />
<cc:attribute name="style" required="false" />
<cc:attribute name="styleClass" required="false" />
</cc:interface>
<cc:implementation>
<ice:dataPaginator for="#{cc.attrs.for}" firstRowIndexVar="firstRowIndex" lastRowIndexVar="lastRowIndex" pageCountVar="pageCount" pageIndexVar="pageIndex"
rendered="#{cc.rendered}" rowsCountVar="rowsCount" style="#{cc.attrs.style}" styleClass="#{cc.attrs.styleClass} search-results">
<ice:outputFormat value="#{value}">
<f:param value="#{firstRowIndex}" />
<f:param value="#{lastRowIndex}" />
<f:param value="#{rowsCount}" />
<f:param value="#{pageIndex}" />
<f:param value="#{pageCount}" />
</ice:outputFormat>
</ice:dataPaginator>
</cc:implementation>
</ui:component>
And here is the error I get when I try to use the composite component with <foo:iceInfoDataPaginator for="mytable" />
java.lang.IllegalArgumentException: could not find UIData referenced by attribute dataScroller@for = 'fooey'
at com.icesoft.faces.component.datapaginator.DataPaginator.findUIData(DataPaginator.java:338)
at com.icesoft.faces.component.datapaginator.DataPaginator.getUIData(DataPaginator.java:227)
at com.icesoft.faces.component.datapaginator.DataPaginator.isModelResultSet(DataPaginator.java:1106)
at com.icesoft.faces.component.datapaginator.DataPaginatorRenderer.encodeBegin(DataPaginatorRenderer.java:205)
at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:823)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:298)
at com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:101)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:848)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1613)
at com.sun.faces.renderkit.html_basic.CompositeRenderer.encodeChildren(CompositeRenderer.java:75)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:848)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:300)
at com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:101)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:848)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:300)
at com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:101)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:848)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:300)
at com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:101)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:848)
Issue Links
- is duplicated by
-
ICE-6398 CoreComponentUtils.findComponent(UIComponent, String) is bailing out too early, not recursing through the component tree enough to find a matching clientId
-
- Closed
-
Activity
Status | Open [ 1 ] | Closed [ 6 ] |
Resolution | Duplicate [ 3 ] |
Having same issue. Any idea if this was fixed in the recently released final version