Tony, On your ListView, try setReuseItems(true) and force a removeAll() ... Any different? It's seems like the number of elements in your ListView's model object (the ArrayList mentioned in the stack trace) has changed (been reduced) by the time the WMC is refreshed, and then the new "size" no longer matches some stale "size".
Regards - Cemal http://www.jWeekend.co.uk http://jWeekend.co.uk tfu wrote: > > Hi Cemal, > > The populateItem method is just doing what it is supposed to do for a > ListView and nothing fancy. Moreover, my other ListViews are working just > fine. I suspect it is the AjaxSelfUpdatingTimerBehavior which is causing > the problem, but I don't know exactly the root of it and how to work > around with this problem. > > Regards, > Tony > > > jWeekend wrote: >> >> tfu, >> >> What does your populateItem implementation (conveniently dotted out ;-) >> look like? >> Are you looking for an element (with index = 23) in the ListView's >> backing ArrayList that does not (no longer) exist(s). >> >> Regards - Cemal >> http://www.jWeekend.co.uk http://jWeekend.co.uk >> >> >> tfu wrote: >>> >>> I'm using Wicket 1.3.2 and I got this weird exception. >>> >>> -- source code >>> WebMarkupContainer result = new WebMarkupContainer("result"); >>> result.add(new >>> AjaxSelfUpdatingTimerBehavior(Duration.seconds(5))); >>> ListView view = new ListView("connections", new >>> PropertyModel(this, "connections")){...}; >>> result.add(view); >>> add(result); >>> >>> -- exception >>> >>> 2008-08-19 13:46:46,749 ERROR [TP-Processor3] >>> org.apache.wicket.RequestCycle - Error attaching this container for >>> rendering: [MarkupContainer [Component id = result, page = >>> com.xxxx.rss.web.connection.ShowConnection, path = >>> 16:panel:result.WebMarkupContainer, isVisible = true, isVersioned = >>> false]] >>> org.apache.wicket.WicketRuntimeException: Error attaching this >>> container for rendering: [MarkupContainer [Component id = result, page = >>> com.xxxx.rss.web.connection.ShowConnection, path = >>> 16:panel:result.WebMarkupContainer, isVisible = true, isVersioned = >>> false]] >>> at >>> org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1589) >>> at >>> org.apache.wicket.Component.onBeforeRender(Component.java:3673) >>> at >>> org.apache.wicket.Component.internalBeforeRender(Component.java:995) >>> at org.apache.wicket.Component.beforeRender(Component.java:1027) >>> at >>> org.apache.wicket.Component.prepareForRender(Component.java:2151) >>> at >>> org.apache.wicket.ajax.AjaxRequestTarget.respondComponent(AjaxRequestTarget.java:698) >>> at >>> org.apache.wicket.ajax.AjaxRequestTarget.respondComponents(AjaxRequestTarget.java:605) >>> at >>> org.apache.wicket.ajax.AjaxRequestTarget.respond(AjaxRequestTarget.java:520) >>> at >>> org.apache.wicket.request.AbstractRequestCycleProcessor.respond(AbstractRequestCycleProcessor.java:104) >>> at >>> org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1172) >>> at org.apache.wicket.RequestCycle.step(RequestCycle.java:1243) >>> at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1330) >>> at org.apache.wicket.RequestCycle.request(RequestCycle.java:493) >>> at >>> org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:358) >>> at >>> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:194) >>> at >>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) >>> at >>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) >>> at >>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210) >>> at >>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174) >>> at >>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) >>> at >>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) >>> at >>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) >>> at >>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151) >>> at >>> org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200) >>> at >>> org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283) >>> at >>> org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773) >>> at >>> org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703) >>> at >>> org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895) >>> at >>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685) >>> at java.lang.Thread.run(Thread.java:595) >>> Caused by: java.lang.IndexOutOfBoundsException: Index: 23, Size: 23 >>> at java.util.ArrayList.RangeCheck(ArrayList.java:547) >>> at java.util.ArrayList.get(ArrayList.java:322) >>> at >>> org.apache.wicket.markup.html.list.ListItemModel.getObject(ListItemModel.java:55) >>> at >>> org.apache.wicket.Component.getModelObject(Component.java:1551) >>> at >>> com.xxxx.rss.web.connection.ShowConnectionPanel$1.populateItem(ShowConnectionPanel.java:86) >>> at >>> org.apache.wicket.markup.html.list.ListView.onPopulate(ListView.java:573) >>> at >>> org.apache.wicket.markup.repeater.AbstractRepeater.onBeforeRender(AbstractRepeater.java:127) >>> at >>> org.apache.wicket.Component.internalBeforeRender(Component.java:995) >>> at org.apache.wicket.Component.beforeRender(Component.java:1027) >>> at >>> org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1577) >>> ... 29 more >>> >>> >>> Any feedback is highly appreciated >>> >> >> > > -- View this message in context: http://www.nabble.com/Help-needed---ListView.onPopulate-IndexOutOfBoundsException-tp19058649p19060290.html Sent from the Wicket - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
