This is fixed in 1.5.3 (currently in voting) On Thu, Nov 10, 2011 at 3:37 PM, Michal Wegrzyn <michal.wegr...@onior.com> wrote: >> -----Original Message----- >> From: Martin Grigorov [mailto:mgrigo...@apache.org] >> Sent: Thursday, November 10, 2011 9:48 >> To: users@wicket.apache.org >> Subject: Re: abort loading lazy components >> >> Hi, >> >> I see no solution for your case. >> Using BookmarkablePageLink works as you confirmed but I'm not aware of >> clean way to cancel running Ajax requests and replace them with >> completely new one. >> >> XMLHttpRequest has #abort() method which cancels the request but this >> will lead co "socket close exception"s in the server side. >> > > Right, I've already looked at XMLHttpRequest#abort(). It wouldn't be a > "clean" solution anyway. > >> The best approach I see is to use the same AjaxChannel name for all >> LazyLoadPanels and the AjaxLinks. The LazyLoadPanels should use type >> QUEUE and the AjaxLinks - type DROP. This way all LazyLoadPanels will >> load sequencially and if you click an AjaxLink it will cancel all >> pending LazyLoadPanels and will schedule the execution of the AjaxLink >> after the end of the currently loading LazyLoadPanel >> >> HTH > > That's what I've already done - Wicket schedules and executes AjaxLink action > (it does not wait for other lazy panels - so far, so good ), but then > (already during handling new ajax request) Wicket throws exception. Isn't it > a Wicket bug? > > 15:31:11.847 user [http-8888-2] WARN o.a.w.r.h.render.WebPageRenderer - The > Buffered response should be handled by BufferedResponseRequestHandler > 15:32:24.028 user [http-8888-5] ERROR o.a.wicket.DefaultExceptionMapper - > Unexpected error occurred > org.apache.wicket.request.handler.ComponentNotFoundException: Could not find > component 'folders:listContainer:itemList:29:itemPanel:folder:children' on > page 'class package.MyPage > at > org.apache.wicket.request.handler.PageAndComponentProvider.getComponent(PageAndComponentProvider.java:167) > at > org.apache.wicket.request.handler.ListenerInterfaceRequestHandler.getComponent(ListenerInterfaceRequestHandler.java:92) > at > org.apache.wicket.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:169) > at > org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:750) > at > org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64) > at > org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:252) > at > org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:209) > at > org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:280) > at > org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:162) > at > org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:218) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at > package.MyRequestContextFilter.doFilter(MyRequestContextFilter.java:43) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368) > at > org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109) > at > org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) > at > org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97) > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) > at > org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100) > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) > at > org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78) > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) > at > org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) > at > org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35) > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) > at > org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187) > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) > at > org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105) > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) > at > org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79) > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) > at > org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:169) > at > org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237) > at > org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) > at > org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:191) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857) > at > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) > at > org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) > at java.lang.Thread.run(Unknown Source) 15:32:24.050 user > [http-8888-5] ERROR o.a.w.request.RequestHandlerStack - Error detaching > RequestHandler > org.apache.wicket.request.handler.ComponentNotFoundException: Could not find > component 'folders:listContainer:itemList:29:itemPanel:folder:children' on > page 'class package.MyPage > at > org.apache.wicket.request.handler.PageAndComponentProvider.getComponent(PageAndComponentProvider.java:167) > at > org.apache.wicket.request.handler.logger.ListenerInterfaceLogData.<init>(ListenerInterfaceLogData.java:51) > at > org.apache.wicket.request.handler.ListenerInterfaceRequestHandler.detach(ListenerInterfaceRequestHandler.java:134) > at > org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.detach(RequestCycle.java:761) > at > org.apache.wicket.request.RequestHandlerStack.detach(RequestHandlerStack.java:180) > at > org.apache.wicket.request.cycle.RequestCycle.onDetach(RequestCycle.java:565) > at > org.apache.wicket.request.cycle.RequestCycle.detach(RequestCycle.java:508) > at > org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:284) > at > org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:162) > at > org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:218) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at > package.MyRequestContextFilter.doFilter(MyRequestContextFilter.java:43) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368) > at > org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109) > at > org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) > at > org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97) > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) > at > org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100) > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) > at > org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78) > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) > at > org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) > at > org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35) > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) > at > org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187) > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) > at > org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105) > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) > at > org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79) > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) > at > org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:169) > at > org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237) > at > org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) > at > org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:191) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857) > at > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) > at > org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) > at java.lang.Thread.run(Unknown Source) > 15:32:24.183 user [http-8888-2] WARN o.a.w.r.h.render.WebPageRenderer - The > Buffered response should be handled by BufferedResponseRequestHandler > > >> On Thu, Nov 10, 2011 at 10:37 AM, Michal Wegrzyn >> <michal.wegr...@onior.com> wrote: >> > Hi, >> > >> > Could you please tell me what is the status of this issue? >> > Should I create a Jira issue and/or quickstart or is it won't >> fix/invalid? >> > >> > Best regards, >> > Michal Wegrzyn >> > >> >> -----Original Message----- >> >> From: Michal Wegrzyn [mailto:michal.wegr...@onior.com] >> >> Sent: Friday, November 04, 2011 11:56 >> >> To: users@wicket.apache.org >> >> Subject: RE: abort loading lazy components >> >> >> >> Thanks for an update Martin. >> >> >> >> Unfortunately using IAjaxCallDecorator#decorateScript() prevents >> >> handling request (nothing happens). >> >> If I append the stop script directly to ajax request target (before >> >> sending event), then request proceeds, but the first lazy component >> is >> >> not loaded. >> >> >> >> Also, the stop script breaks ajax indicators (both from lazy >> components >> >> and indicating links). Exceptions still are present, but page isn't >> >> crashing. >> >> >> >> So far the closest solution was using BookmarkablePageLink, but it >> is >> >> not ajax and it is just a workaround. >> >> >> >> Isn't there a way to prevent Wicket from handling "old" ajax >> requests? >> >> I assume that's how it should work with DROP channel. >> >> >> >> Best regards, >> >> Michal Wegrzyn >> >> >> >> > -----Original Message----- >> >> > From: Martin Grigorov [mailto:mgrigo...@apache.org] >> >> > Sent: Thursday, November 03, 2011 17:54 >> >> > To: users@wicket.apache.org >> >> > Subject: Re: abort loading lazy components >> >> > >> >> > Here is something that I didn't know so far: >> >> > http://stackoverflow.com/questions/930237/javascript-cancel-stop- >> >> image- >> >> > requests/1468452#1468452 >> >> > >> >> > It seems there is a way to simulate browser's stop button with >> >> > JavaScript. >> >> > Try to use that code from IAjaxCallDecorator#decorateScript() for >> >> your >> >> > AjaxLink. >> >> > >> >> > On Thu, Nov 3, 2011 at 3:00 PM, Michal Wegrzyn >> >> > <michal.wegr...@onior.com> wrote: >> >> > > I've just debugged and indeed problem is that there is no >> component >> >> > with id "29". >> >> > > So clearly Wicket looks for an lazy "children" component from >> >> > outdated DataView component. >> >> > > >> >> > > Michal >> >> > > >> >> > >> -----Original Message----- >> >> > >> From: Michal Wegrzyn [mailto:michal.wegr...@onior.com] >> >> > >> Sent: Wednesday, November 02, 2011 16:11 >> >> > >> To: users@wicket.apache.org >> >> > >> Subject: RE: abort loading lazy components >> >> > >> >> >> > >> It is triggered when there is already new "itemList" (it >> extends >> >> > >> DataView), so I suppose that >> >> > >> PageAndComponentProvider looks for "itemList:29", which does >> not >> >> > exists >> >> > >> anymore. >> >> > >> >> >> > >> Scenario: >> >> > >> >> >> > >> - Page is loaded but lazy components >> >> > >> ('folders:listContainer:itemList:itemPanel:folder:children') >> are >> >> > still >> >> > >> loading >> >> > >> - User triggers folder change (itemList is replaced) >> >> > >> - Exception occurs >> >> > >> >> >> > >> If user triggers folder change when lazy components are >> completely >> >> > >> loaded (or during loading the last one) there is no exception >> at >> >> > all. >> >> > >> >> >> > >> Best Regards, >> >> > >> Michal Wegrzyn >> >> > >> >> >> > >> -----Original Message----- >> >> > >> From: Martin Grigorov [mailto:mgrigo...@apache.org] >> >> > >> Sent: Wednesday, November 02, 2011 15:54 >> >> > >> To: users@wicket.apache.org >> >> > >> Subject: Re: abort loading lazy components >> >> > >> >> >> > >> On Wed, Nov 2, 2011 at 4:49 PM, Michal Wegrzyn >> >> > >> <michal.wegr...@onior.com> wrote: >> >> > >> > 15:32:24.028 user [http-8888-5] ERROR >> >> > >> o.a.wicket.DefaultExceptionMapper - Unexpected error occurred >> >> > >> > org.apache.wicket.request.handler.ComponentNotFoundException: >> >> > Could >> >> > >> not find component >> >> > >> 'folders:listContainer:itemList:29:itemPanel:folder:children' >> on >> >> > page >> >> > >> 'class package.MyPage >> >> > >> >> >> > >> Do you know how this is triggered ? >> >> > > >> >> > > >> >> > >> >> > >> >> > >> >> > -- >> >> > Martin Grigorov >> >> > jWeekend >> >> > Training, Consulting, Development >> >> > http://jWeekend.com >> >> > >> >> > ------------------------------------------------------------------ >> --- >> >> > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >> >> > For additional commands, e-mail: users-h...@wicket.apache.org >> > >> > >> >> >> >> -- >> Martin Grigorov >> jWeekend >> Training, Consulting, Development >> http://jWeekend.com >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >> For additional commands, e-mail: users-h...@wicket.apache.org > >
-- Martin Grigorov jWeekend Training, Consulting, Development http://jWeekend.com --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org