[ http://issues.apache.org/struts/browse/SHALE-234?page=comments#action_37878 ] Gary VanMatre commented on SHALE-234: -------------------------------------
I could not recreate this error. Please provide a template to recreate it. Are you using JSP and Clay, full HTML or XML views? The components that are created when the view is restored are verbatim components which are not serialized to the client's state. In a clay HTML template, all markup that is not bound to a component becomes a verbatim component. When the view is restored, we need to figure out where to recreate the verbatim components in the tree. Another factor is that myfaces 1.1.3 has changed how the unique id's are created from the view root. This is different than how the RI handles it in 1.1. Please help isolate this error. > actionLink twice in a page leads to an exception > ------------------------------------------------ > > Key: SHALE-234 > URL: http://issues.apache.org/struts/browse/SHALE-234 > Project: Shale > Issue Type: Bug > Components: Clay > Affects Versions: Nightly > Environment: windows xp, Tomcat 5.5.17, myfaces 1.1.3 > Reporter: Ian Priest > > if an actionLink with the same action is used in a page twice an > IndexOutOfBoundsException is thrown... > 2006-07-26 15:18:24,932 DEBUG > [org.apache.shale.clay.component.chain.CreateComponentCommand] Child > component id: _idsc66, jsfid: verbatim child#: 30 created. > 2006-07-26 15:18:24,932 DEBUG > [org.apache.shale.clay.component.chain.CreateComponentCommand] Child > component id: helprequest, jsfid: widgetsActionLink child#: 31 created. > ...<messages clipped>... > 2006-07-26 15:18:24,952 DEBUG > [org.apache.shale.clay.component.chain.CreateComponentCommand] Child > component helprequest, jsfid: widgetsActionLink child#: 41 exists. > 2006-07-26 15:18:24,952 DEBUG > [org.apache.shale.clay.component.chain.CreateComponentCommand] Child > component id: _idsc79, jsfid: outputText child#: 0 created. > 2006-07-26 15:18:24,952 ERROR [org.apache.shale.clay.component.Clay] > java.lang.IndexOutOfBoundsException: Index: 42, Size: 41 > 2006-07-26 15:18:24,952 DEBUG [org.apache.shale.view.faces.ViewPhaseListener] > afterPhase([EMAIL PROTECTED],RENDER_RESPONSE(6)) > 2006-07-26 15:18:24,952 DEBUG [org.apache.shale.view.faces.LifecycleListener] > ServletRequestAttributeRemoved(org.apache.shale.view.VIEWS_INITIALIZED,[EMAIL > PROTECTED]) > 2006-07-26 15:18:24,952 DEBUG [org.apache.shale.view.faces.LifecycleListener] > ServletRequestAttributeRemoved(org.apache.shale.view.PHASE_ID,RENDER_RESPONSE(6)) > 2006-07-26 15:18:24,962 ERROR > [org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/scn].[faces]] > Servlet.service() for servlet faces threw exception > java.lang.RuntimeException: java.lang.IndexOutOfBoundsException: Index: 42, > Size: 41 > at org.apache.shale.clay.component.Clay.encodeBegin(Clay.java:390) > at > org.apache.shale.clay.component.Clay.recursiveRenderChildren(Clay.java:412) > at > org.apache.shale.clay.component.Clay.recursiveRenderChildren(Clay.java:415) > at > org.apache.shale.clay.component.Clay.recursiveRenderChildren(Clay.java:415) > at org.apache.shale.clay.component.Clay.encodeChildren(Clay.java:444) > at > org.apache.shale.clay.component.Clay.recursiveRenderChildren(Clay.java:417) > at org.apache.shale.clay.component.Clay.encodeChildren(Clay.java:444) > at > org.apache.shale.clay.faces.ClayViewHandler.recursiveRender(ClayViewHandler.java:468) > at > org.apache.shale.clay.faces.ClayViewHandler.renderView(ClayViewHandler.java:394) > at > org.apache.shale.view.faces.ViewViewHandler.renderView(ViewViewHandler.java:150) > at > org.apache.shale.tiles.TilesViewHandler.renderView(TilesViewHandler.java:175) > 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.shale.faces.ShaleApplicationFilter.doFilter(ShaleApplicationFilter.java:271) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > at > org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:292) > at > org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116) > at > org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:79) > at > org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303) > at > org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:143) > at > org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303) > at > org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:138) > at > org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303) > at > org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:220) > at > org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303) > at > org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:173) > at > org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:120) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > at com.scn.web.filter.CharsetFilter.doFilter(CharsetFilter.java:45) > 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.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) > Caused by: java.lang.IndexOutOfBoundsException: Index: 42, Size: 41 > at java.util.ArrayList.add(ArrayList.java:369) > at > javax.faces.component._ComponentChildrenList.add(_ComponentChildrenList.java:70) > at > org.apache.shale.clay.component.chain.CreateComponentCommand.execute(CreateComponentCommand.java:209) > at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:166) > at > org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:175) > at > org.apache.shale.clay.utils.FalseLookupCommand.execute(FalseLookupCommand.java:38) > at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:166) > at > org.apache.shale.clay.component.chain.AssignChildrenCommand.execute(AssignChildrenCommand.java:90) > at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:166) > at > org.apache.shale.clay.component.chain.AssignChildrenCommand.execute(AssignChildrenCommand.java:90) > at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:166) > at org.apache.shale.clay.component.Clay.encodeBegin(Clay.java:387) > ... 46 more -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/struts/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
