Ok, new twist:
<trh:body>
<tr:form>
<tr:table value="#{testBean.list}" var="item"
allDetailsEnabled="true">
<f:facet name="detailStamp">
<ui:fragment>
<div>
<h:outputLabel for="foo" value="Foo"/>
<h:inputText value="#{item}" />
</div>
</ui:fragment>
</f:facet>
<tr:column headerText="Foo Value">
#{item}
</tr:column>
</tr:table>
</tr:form>
</trh:body>
Causes a ClassCastException (below). If I take away the <div>, no
exception, so I'm guessing the problem is with transient components
like inline HTML.
java.lang.ClassCastException: javax.faces.component.html.HtmlOutputLabel
at
org.apache.myfaces.trinidad.component.StampState$EVHState.restoreRowState(StampState.java:342)
at
org.apache.myfaces.trinidad.component.StampState.restoreStampState(StampState.java:118)
at
org.apache.myfaces.trinidad.component.UIXCollection.restoreStampState(UIXCollection.java:819)
at
org.apache.myfaces.trinidad.component.UIXTable.restoreStampState(UIXTable.java:338)
at
org.apache.myfaces.trinidad.component.UIXCollection.restoreStampState(UIXCollection.java:840)
at
org.apache.myfaces.trinidad.component.UIXTable.restoreStampState(UIXTable.java:338)
at
org.apache.myfaces.trinidad.component.UIXCollection._restoreStampState(UIXCollection.java:1141)
at
org.apache.myfaces.trinidad.component.UIXCollection.postRowDataChange(UIXCollection.java:711)
at
org.apache.myfaces.trinidad.component.UIXCollection.setRowIndex(UIXCollection.java:409)
at
org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.table.TableRenderingContext.<init>(TableRenderingContext.java:56)
at
org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.TableRenderer.createRenderingContext(TableRenderer.java:405)
at
org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.TableRenderer.encodeAll(TableRenderer.java:250)
at
org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:184)
at
org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:700)
at
org.apache.myfaces.trinidad.component.UIXCollection.encodeEnd(UIXCollection.java:495)
at
org.apache.myfaces.trinidad.render.RenderUtils.encodeRecursive(RenderUtils.java:70)
at
org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:258)
at
org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:280)
at
org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.PanelPartialRootRenderer.renderContent(PanelPartialRootRenderer.java:73)
at
org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.BodyRenderer.renderContent(BodyRenderer.java:137)
at
org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.PanelPartialRootRenderer.encodeAll(PanelPartialRootRenderer.java:153)
at
org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.BodyRenderer.encodeAll(BodyRenderer.java:79)
at
org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:184)
at
org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:700)
at
com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(ComponentSupport.java:242)
at
com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(ComponentSupport.java:239)
at
com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:580)
at
org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:181)
at
org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:384)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:138)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._invokeDoFilter(TrinidadFilterImpl.java:329)
at
org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:293)
at
org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:216)
at
org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:93)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
at
org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
at
org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:90)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
at
org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:90)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:216)
at
org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:90)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:195)
at
org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:90)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174)
at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:144)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
On 1/24/07, Adam Winer <[EMAIL PROTECTED]> wrote:
What a coincidence - it's a Trinidad bug that I fixed
about 2 hours ago! If you download the absolute
latest code and rebuild, the problem should be gone.
-- Adam
On 1/24/07, noah <[EMAIL PROTECTED]> wrote:
>
> This may be a Facelets issue, I'm not sure.
>
> Simple Example:
>
> <tr:table allDetailsEnabled="true" ...>
> <f:facet name="detailStamp">
> <h:panelGroup>
> <h:outputText value="foo"/>
> <br/>
> <h:outputText value="bar"/>
> </h:panelgroup>
> </f:facet>
> ...
>
> That gets me a index out of bounds exception (trace below). Any idea
> what's going on or how to fix it?
>
> My Setup:
> Facelets 1.1.11
> MyFaces & Tomahawk 1.1.3
> Trinidad m1-SNAPSHOT
>
> exception:
>
> javax.servlet.ServletException: Index: 2, Size: 2
> javax.faces.webapp.FacesServlet.service(FacesServlet.java:152)
>
> org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._invokeDoFilter
> (TrinidadFilterImpl.java:327)
>
> org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl
> (TrinidadFilterImpl.java:291)
>
> org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(
> TrinidadFilterImpl.java
> :214)
> org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(
> TrinidadFilter.java:90)
>
> org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter
> (SecurityContextHolderAwareRequestFilter.java:81)
>
> org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(
> FilterSecurityInterceptor.java:107)
> org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter
> (FilterSecurityInterceptor.java:72)
> org.acegisecurity.util.FilterToBeanProxy.doFilter
> (FilterToBeanProxy.java:90)
> org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(
> ExceptionTranslationFilter.java:110)
> org.acegisecurity.util.FilterToBeanProxy.doFilter(
> FilterToBeanProxy.java:90)
> org.acegisecurity.ui.AbstractProcessingFilter.doFilter
> (AbstractProcessingFilter.java:216)
> org.acegisecurity.util.FilterToBeanProxy.doFilter(
> FilterToBeanProxy.java:90)
>
> org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(
> HttpSessionContextIntegrationFilter.java
> :195)
> org.acegisecurity.util.FilterToBeanProxy.doFilter(
> FilterToBeanProxy.java:90)
>
>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal
> (OpenSessionInViewFilter.java:174)
> org.springframework.web.filter.OncePerRequestFilter.doFilter
> (OncePerRequestFilter.java:76)
> org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(
> ExtensionsFilter.java:144)
>
> root cause
>
> java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
> java.util.ArrayList.RangeCheck
> (ArrayList.java:546)
> java.util.ArrayList.get(ArrayList.java:321)
> javax.faces.component._ComponentChildrenList.get
> (_ComponentChildrenList.java:42)
>
> org.apache.myfaces.trinidad.component.UIXCollection.restoreStampState
> (UIXCollection.java:837)
> org.apache.myfaces.trinidad.component.UIXTable.restoreStampState(
> UIXTable.java:323)
>
> org.apache.myfaces.trinidad.component.UIXCollection._restoreStampState(
> UIXCollection.java:1110)
>
> org.apache.myfaces.trinidad.component.UIXCollection.postRowDataChange
> (UIXCollection.java:729)
> org.apache.myfaces.trinidad.component.UIXCollection.setRowKey(
> UIXCollection.java:388)
>
> org.apache.myfaces.trinidad.component.UIXCollection.setCurrencyString(
> UIXCollection.java:639)
>
>
org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.table.TableSelectManyRenderer._setDeltas
> (TableSelectManyRenderer.java:147)
>
>
org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.table.TableSelectManyRenderer.decode
> (TableSelectManyRenderer.java:109)
>
>
org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.TableRenderer.decodeSelection
> (TableRenderer.java:125)
>
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.TableRenderer.decode
> (TableRenderer.java:89)
>
> org.apache.myfaces.trinidad.component.UIXComponentBase.__rendererDecode(
> UIXComponentBase.java
> :1011)
> org.apache.myfaces.trinidad.component.UIXComponentBase.decode(
> UIXComponentBase.java:623)
> org.apache.myfaces.trinidad.component.UIXCollection.processDecodes
> (UIXCollection.java:146)
> javax.faces.component.UIComponentBase.processDecodes
> (UIComponentBase.java:602)
>
> org.apache.myfaces.custom.tabbedpane.HtmlPanelTabbedPane.processDecodes(
> HtmlPanelTabbedPane.java:65)
> javax.faces.component.UIForm.processDecodes(UIForm.java:53)
>
> org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl
> (UIXComponentBase.java:889)
>
> org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(
> UIXComponentBase.java:874)
>
> org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(
> UIXComponentBase.java
> :725)
> javax.faces.component.UIComponentBase.processDecodes(
> UIComponentBase.java:602)
> javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java
> :135)
> org.apache.myfaces.lifecycle.LifecycleImpl.applyRequestValues
> (LifecycleImpl.java:219)
> org.apache.myfaces.lifecycle.LifecycleImpl.execute(
> LifecycleImpl.java:71)
> javax.faces.webapp.FacesServlet.service(FacesServlet.java:137)
>
> org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._invokeDoFilter
> (TrinidadFilterImpl.java:327)
>
> org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl
> (TrinidadFilterImpl.java:291)
>
> org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(
> TrinidadFilterImpl.java
> :214)
> org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(
> TrinidadFilter.java:90)
>
> org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter
> (SecurityContextHolderAwareRequestFilter.java:81)
>
> org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(
> FilterSecurityInterceptor.java:107)
> org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter
> (FilterSecurityInterceptor.java:72)
> org.acegisecurity.util.FilterToBeanProxy.doFilter
> (FilterToBeanProxy.java:90)
> org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(
> ExceptionTranslationFilter.java:110)
> org.acegisecurity.util.FilterToBeanProxy.doFilter(
> FilterToBeanProxy.java:90)
> org.acegisecurity.ui.AbstractProcessingFilter.doFilter
> (AbstractProcessingFilter.java:216)
> org.acegisecurity.util.FilterToBeanProxy.doFilter(
> FilterToBeanProxy.java:90)
>
> org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(
> HttpSessionContextIntegrationFilter.java
> :195)
> org.acegisecurity.util.FilterToBeanProxy.doFilter(
> FilterToBeanProxy.java:90)
>
>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal
> (OpenSessionInViewFilter.java:174)
> org.springframework.web.filter.OncePerRequestFilter.doFilter
> (OncePerRequestFilter.java:76)
> org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(
> ExtensionsFilter.java:144)
>