I think that one is actually Facelets. By just inlining the text, it is marked transient (according to Facelets) so on restore view (I think that's the phase, but I'm probably wrong) your panel group doesn't have as many elements in it, or something like that. By using outputText, it sticks around. I had a similar problem using t:tree2 because one of my facets was just inline text and EL. Changing it to h:outputText fixed it.
________________________________ From: Laurie Harper [mailto:[EMAIL PROTECTED] Sent: Wed 23-Aug-06 1:09 AM To: adffaces-user@incubator.apache.org Subject: Possible bug in tr:table sorting I just tracked down the cause of an exception raised during sorting of a tr:table component in my application, and it seems to be a Trinidad bug. Here's the problem markup: <tr:column noWrap="true"> <tr:panelGroupLayout><!-- FIXME: why do we need this here? --> <tr:commandLink action="edit" text="edit" rendered="${not empty row.id}"/>   <tr:commandLink action="edit" text="delete" rendered="${not empty row.id}"/>   <tr:commandLink action="edit" text="split" rendered="${not empty row.id}"/> </tr:panelGroupLayout> </tr:column> The tr:panelGroupLayout is there because otherwise each link is wrapped in a <div> element (even if I set separateRows="false"; is that correct??); the   (non-breakig space) entities are there because otherwise the links run into each other -- that may be a function of Facelets' stripping of element-only whitespace. When I sort any column in the table, I get a nasty IndexOutOfBounds exception. It turns out to be the non-breaking space entities; if I change those to <tr:outputText value=" "/> the exception goes away. Since (I think) Facelets turns template text into UIText components, I'm not sure why the raw character entity is a problem? Here's the root stack trace, in case it helps at all ;-) java.lang.IndexOutOfBoundsException: Index: 4, Size: 4 at java.util.ArrayList.RangeCheck(ArrayList.java:547) at java.util.ArrayList.get(ArrayList.java:322) at org.apache.myfaces.trinidad.component.UIXCollection.restoreStampState (UIXCollection.java:820) at org.apache.myfaces.trinidad.component.UIXTable.restoreStampState (UIXTable.java:320) at org.apache.myfaces.trinidad.component.StampState.restoreChildStampState( StampState.java:152) at org.apache.myfaces.trinidad.component.UIXTable.restoreStampState (UIXTable.java:317) at org.apache.myfaces.trinidad.component.UIXCollection._restoreStampState (UIXCollection.java:1094) at org.apache.myfaces.trinidad.component.UIXCollection.postRowDataChange (UIXCollection.java:712) at org.apache.myfaces.trinidad.component.UIXCollection.setRowIndex (UIXCollection.java:405) at org.apache.myfaces.trinidad.component.UIXTable._processStamps (UIXTable.java:391) at org.apache.myfaces.trinidad.component.UIXTable.processFacetsAndChildren( UIXTable.java:265) at org.apache.myfaces.trinidad.component.UIXCollection.decodeChildrenImpl (UIXCollection.java:155) at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren (UIXComponentBase.java:874) at org.apache.myfaces.trinidad.component.UIXCollection.processDecodes (UIXCollection.java:149) at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImp l(UIXComponentBase.java:890) at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren (UIXComponentBase.java:874) at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes (UIXComponentBase.java:725) at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImp l(UIXComponentBase.java:890) at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren (UIXComponentBase.java:874) at org.apache.myfaces.trinidad.component.UIXForm.processDecodes (UIXForm.java:60) at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImp l(UIXComponentBase.java:890) at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren (UIXComponentBase.java:874) at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes (UIXComponentBase.java:725) at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImp l(UIXComponentBase.java:890) at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren (UIXComponentBase.java:874) at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes (UIXComponentBase.java:725) at javax.faces.component.UIComponentBase.processDecodes (UIComponentBase.java:397) at javax.faces.component.UIViewRoot.processDecodes (UIViewRoot.java:131) at org.apache.myfaces.lifecycle.LifecycleImpl.applyRequestValues (LifecycleImpl.java:200) at org.apache.myfaces.lifecycle.LifecycleImpl.execute (LifecycleImpl.java:71) at javax.faces.webapp.FacesServlet.service(FacesServlet.java: 106) at org.mortbay.jetty.servlet.ServletHolder.handle (ServletHolder.java:442) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1051) at com.foo.projility.web.auth.UserAuthenticationFilter.doFilter (UserAuthenticationFilter.java:80) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1042) at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFil terInternal(OpenSessionInViewFilter.java:174) at org.springframework.web.filter.OncePerRequestFilter.doFilter (OncePerRequestFilter.java:76) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1042) at org.apache.shale.faces.ShaleApplicationFilter.doFilter (ShaleApplicationFilter.java:271) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1042) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._invokeDoF ilter(TrinidadFilterImpl.java:327) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterI mpl(TrinidadFilterImpl.java:291) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter (TrinidadFilterImpl.java:214) at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter (TrinidadFilter.java:90) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1042) at org.mortbay.jetty.servlet.ServletHandler.handle (ServletHandler.java:355) at org.mortbay.jetty.servlet.SessionHandler.handle (SessionHandler.java:226) at org.mortbay.jetty.handler.ContextHandler.handle (ContextHandler.java:615) at org.mortbay.jetty.handler.ContextHandlerCollection.handle (ContextHandlerCollection.java:150) at org.mortbay.jetty.handler.HandlerCollection.handle (HandlerCollection.java:123) at org.mortbay.jetty.handler.HandlerWrapper.handle (HandlerWrapper.java:141) at org.mortbay.jetty.Server.handle(Server.java:272) at org.mortbay.jetty.HttpConnection.handlerRequest (HttpConnection.java:396) at org.mortbay.jetty.HttpConnection$RequestHandler.content (HttpConnection.java:666) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:613) at org.mortbay.jetty.HttpParser.parseAvailable (HttpParser.java:198) at org.mortbay.jetty.HttpConnection.handle (HttpConnection.java:311) at org.mortbay.jetty.nio.HttpChannelEndPoint.run (HttpChannelEndPoint.java:270) at org.mortbay.thread.BoundedThreadPool$PoolThread.run (BoundedThreadPool.java:475) -- Laurie Harper Open Source advocate, Java geek: http://www.holoweb.net/laurie Founder, Zotech Software: http://www.zotechsoftware.com/