Details
-
Type:
Bug
-
Status: Closed
-
Priority:
Major
-
Resolution: Cannot Reproduce
-
Affects Version/s: 1.7DR#3
-
Fix Version/s: 1.7
-
Component/s: ICE-Components
-
Labels:None
-
Environment:Seam 2.0.1.CR2 + facelets + JBoss AS 4.2.2.GA
-
Assignee Priority:P2
-
Workaround Exists:Yes
-
Workaround Description:Don't use paginator.
Description
tab panel which does an <ui:include> to a page with a datatable and an associated datapaginator gave me grief by throwing exception when I pressed the refresh button in the browser on first entry to that tab. Tried giving manual IDs to all components:
[code]
<ice:dataPaginator
for="xxx"
id="pag"
paginator="true">
<f:facet name="first" id="firstfac">
<ice:outputText value="first" id="firstout"/>
</f:facet>
<f:facet name="last" id="lastfac">
<ice:outputText value="last" id="lastout"/>
</f:facet>
<f:facet name="next" id="nextfac">
<ice:outputText value="next" id="nextout"/>
</f:facet>
<f:facet name="previous" id="prevfac">
<ice:outputText value="previous" id="prevout"/>
</f:facet>
<f:facet name="fastforward" id="fastfwdfac">
<ice:outputText value="fastforward" id="fastfwdout"/>
</f:facet>
<f:facet name="fastrewind" id="fastrevfac">
<ice:outputText value="fastrewind" id="fastrevout"/>
</f:facet>
</ice:dataPaginator>
[/code]
and the interesting part of the stacktrace is
[code]
java.lang.IllegalStateException: Component ID form:tabset:0:pagfastr
+id: pag
type: com.icesoft.faces.component.datapaginator.DataPaginator@39390
+id: prevout
type: com.icesoft.faces.component.ext.HtmlOutputText@cce87c
+id: lastout
type: com.icesoft.faces.component.ext.HtmlOutputText@b34e55
+id: fastrevout
type: com.icesoft.faces.component.ext.HtmlOutputText@1dbcd95
+id: fastfwdout
type: com.icesoft.faces.component.ext.HtmlOutputText@196018a
+id: nextout
type: com.icesoft.faces.component.ext.HtmlOutputText@13f171e
+id: firstout
type: com.icesoft.faces.component.ext.HtmlOutputText@106f0c2
+id: pagfastr
type: com.icesoft.faces.component.ext.HtmlCommandLink@a85f71
+id: pagfastr_param
type: javax.faces.component.UIParameter@120db2
+id: pagnext
type: com.icesoft.faces.component.ext.HtmlCommandLink@1414822
+id: pagnext_param
type: javax.faces.component.UIParameter@e6cb7e
+id: paglast
type: com.icesoft.faces.component.ext.HtmlCommandLink@39e6b0
+id: paglast_param
type: javax.faces.component.UIParameter@1585e2a
+id: pagfirst
type: com.icesoft.faces.component.ext.HtmlCommandLink@8e55a3
+id: pagfirst_param
type: javax.faces.component.UIParameter@984ced
+id: pagfastr
type: com.icesoft.faces.component.ext.HtmlCommandLink@e2706d
+id: pagfastr_param
type: javax.faces.component.UIParameter@43180c
+id: pagprevious
type: com.icesoft.faces.component.ext.HtmlCommandLink@dfeb26
+id: pagprevious_param
type: javax.faces.component.UIParameter@c728f5
+id: pagnext
type: com.icesoft.faces.component.ext.HtmlCommandLink@15228b8
+id: pagnext_param
type: javax.faces.component.UIParameter@ef6882
+id: pagfastf
type: com.icesoft.faces.component.ext.HtmlCommandLink@1b644d3
+id: pagfastf_param
type: javax.faces.component.UIParameter@1609f7a
+id: paglast
type: com.icesoft.faces.component.ext.HtmlCommandLink@8618d5
+id: paglast_param
type: javax.faces.component.UIParameter@1c8734d
[/code]
which leads to the question: Is there a copypaste-bug in the ID generation code?
[code]
<ice:dataPaginator
for="xxx"
id="pag"
paginator="true">
<f:facet name="first" id="firstfac">
<ice:outputText value="first" id="firstout"/>
</f:facet>
<f:facet name="last" id="lastfac">
<ice:outputText value="last" id="lastout"/>
</f:facet>
<f:facet name="next" id="nextfac">
<ice:outputText value="next" id="nextout"/>
</f:facet>
<f:facet name="previous" id="prevfac">
<ice:outputText value="previous" id="prevout"/>
</f:facet>
<f:facet name="fastforward" id="fastfwdfac">
<ice:outputText value="fastforward" id="fastfwdout"/>
</f:facet>
<f:facet name="fastrewind" id="fastrevfac">
<ice:outputText value="fastrewind" id="fastrevout"/>
</f:facet>
</ice:dataPaginator>
[/code]
and the interesting part of the stacktrace is
[code]
java.lang.IllegalStateException: Component ID form:tabset:0:pagfastr
+id: pag
type: com.icesoft.faces.component.datapaginator.DataPaginator@39390
+id: prevout
type: com.icesoft.faces.component.ext.HtmlOutputText@cce87c
+id: lastout
type: com.icesoft.faces.component.ext.HtmlOutputText@b34e55
+id: fastrevout
type: com.icesoft.faces.component.ext.HtmlOutputText@1dbcd95
+id: fastfwdout
type: com.icesoft.faces.component.ext.HtmlOutputText@196018a
+id: nextout
type: com.icesoft.faces.component.ext.HtmlOutputText@13f171e
+id: firstout
type: com.icesoft.faces.component.ext.HtmlOutputText@106f0c2
+id: pagfastr
type: com.icesoft.faces.component.ext.HtmlCommandLink@a85f71
+id: pagfastr_param
type: javax.faces.component.UIParameter@120db2
+id: pagnext
type: com.icesoft.faces.component.ext.HtmlCommandLink@1414822
+id: pagnext_param
type: javax.faces.component.UIParameter@e6cb7e
+id: paglast
type: com.icesoft.faces.component.ext.HtmlCommandLink@39e6b0
+id: paglast_param
type: javax.faces.component.UIParameter@1585e2a
+id: pagfirst
type: com.icesoft.faces.component.ext.HtmlCommandLink@8e55a3
+id: pagfirst_param
type: javax.faces.component.UIParameter@984ced
+id: pagfastr
type: com.icesoft.faces.component.ext.HtmlCommandLink@e2706d
+id: pagfastr_param
type: javax.faces.component.UIParameter@43180c
+id: pagprevious
type: com.icesoft.faces.component.ext.HtmlCommandLink@dfeb26
+id: pagprevious_param
type: javax.faces.component.UIParameter@c728f5
+id: pagnext
type: com.icesoft.faces.component.ext.HtmlCommandLink@15228b8
+id: pagnext_param
type: javax.faces.component.UIParameter@ef6882
+id: pagfastf
type: com.icesoft.faces.component.ext.HtmlCommandLink@1b644d3
+id: pagfastf_param
type: javax.faces.component.UIParameter@1609f7a
+id: paglast
type: com.icesoft.faces.component.ext.HtmlCommandLink@8618d5
+id: paglast_param
type: javax.faces.component.UIParameter@1c8734d
[/code]
which leads to the question: Is there a copypaste-bug in the ID generation code?
Could it be that the ID:s for the page number links somehow get mixed up with the IDs for the navigation links in the datapaginator?