Ticket + quickstart On Mon, Nov 14, 2011 at 2:39 PM, Michal Wegrzyn <[email protected]> wrote: > Just tried with 1.5.3 - unfortunately I still get an exception. > >> -----Original Message----- >> From: Martin Grigorov [mailto:[email protected]] >> Sent: Thursday, November 10, 2011 14:50 >> To: [email protected] >> Subject: Re: abort loading lazy components >> >> This is fixed in 1.5.3 (currently in voting) >> >> On Thu, Nov 10, 2011 at 3:37 PM, Michal Wegrzyn >> <[email protected]> wrote: >> >> -----Original Message----- >> >> From: Martin Grigorov [mailto:[email protected]] >> >> Sent: Thursday, November 10, 2011 9:48 >> >> To: [email protected] >> >> 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.getCo >> mponent(ListenerInterfaceRequestHandler.java:92) >> > at >> org.apache.wicket.request.handler.ListenerInterfaceRequestHandler.respo >> nd(ListenerInterfaceRequestHandler.java:169) >> > at >> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(Re >> questCycle.java:750) >> > at >> org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerSta >> ck.java:64) >> > at >> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java: >> 252) >> > at >> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycl >> e.java:209) >> > at >> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(Re >> questCycle.java:280) >> > at >> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilte >> r.java:162) >> > at >> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java >> :218) >> > at >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applic >> ationFilterChain.java:235) >> > at >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFil >> terChain.java:206) >> > at >> package.MyRequestContextFilter.doFilter(MyRequestContextFilter.java:43) >> > at >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applic >> ationFilterChain.java:235) >> > at >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFil >> terChain.java:206) >> > at >> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.do >> Filter(FilterChainProxy.java:368) >> > at >> org.springframework.security.web.access.intercept.FilterSecurityInterce >> ptor.invoke(FilterSecurityInterceptor.java:109) >> > at >> org.springframework.security.web.access.intercept.FilterSecurityInterce >> ptor.doFilter(FilterSecurityInterceptor.java:83) >> > at >> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.do >> Filter(FilterChainProxy.java:380) >> > at >> org.springframework.security.web.access.ExceptionTranslationFilter.doFi >> lter(ExceptionTranslationFilter.java:97) >> > at >> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.do >> Filter(FilterChainProxy.java:380) >> > at >> org.springframework.security.web.session.SessionManagementFilter.doFilt >> er(SessionManagementFilter.java:100) >> > at >> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.do >> Filter(FilterChainProxy.java:380) >> > at >> org.springframework.security.web.authentication.AnonymousAuthentication >> Filter.doFilter(AnonymousAuthenticationFilter.java:78) >> > at >> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.do >> Filter(FilterChainProxy.java:380) >> > at >> org.springframework.security.web.servletapi.SecurityContextHolderAwareR >> equestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) >> > at >> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.do >> Filter(FilterChainProxy.java:380) >> > at >> org.springframework.security.web.savedrequest.RequestCacheAwareFilter.d >> oFilter(RequestCacheAwareFilter.java:35) >> > at >> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.do >> Filter(FilterChainProxy.java:380) >> > at >> org.springframework.security.web.authentication.AbstractAuthenticationP >> rocessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:18 >> 7) >> > at >> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.do >> Filter(FilterChainProxy.java:380) >> > at >> org.springframework.security.web.authentication.logout.LogoutFilter.doF >> ilter(LogoutFilter.java:105) >> > at >> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.do >> Filter(FilterChainProxy.java:380) >> > at >> org.springframework.security.web.context.SecurityContextPersistenceFilt >> er.doFilter(SecurityContextPersistenceFilter.java:79) >> > at >> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.do >> Filter(FilterChainProxy.java:380) >> > at >> org.springframework.security.web.FilterChainProxy.doFilter(FilterChainP >> roxy.java:169) >> > at >> org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(Del >> egatingFilterProxy.java:237) >> > at >> org.springframework.web.filter.DelegatingFilterProxy.doFilter(Delegatin >> gFilterProxy.java:167) >> > at >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applic >> ationFilterChain.java:235) >> > at >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFil >> terChain.java:206) >> > at >> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperVal >> ve.java:233) >> > at >> org.apache.catalina.core.StandardContextValve.__invoke(StandardContextV >> alve.java:191) >> > at >> org.apache.catalina.core.StandardContextValve.invoke(StandardContextVal >> ve.java) >> > at >> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.jav >> a:127) >> > at >> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.jav >> a: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:8 >> 57) >> > 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.detac >> h(ListenerInterfaceRequestHandler.java:134) >> > at >> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.detach(Req >> uestCycle.java:761) >> > at >> org.apache.wicket.request.RequestHandlerStack.detach(RequestHandlerStac >> k.java:180) >> > at >> org.apache.wicket.request.cycle.RequestCycle.onDetach(RequestCycle.java >> :565) >> > at >> org.apache.wicket.request.cycle.RequestCycle.detach(RequestCycle.java:5 >> 08) >> > at >> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(Re >> questCycle.java:284) >> > at >> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilte >> r.java:162) >> > at >> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java >> :218) >> > at >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applic >> ationFilterChain.java:235) >> > at >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFil >> terChain.java:206) >> > at >> package.MyRequestContextFilter.doFilter(MyRequestContextFilter.java:43) >> > at >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applic >> ationFilterChain.java:235) >> > at >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFil >> terChain.java:206) >> > at >> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.do >> Filter(FilterChainProxy.java:368) >> > at >> org.springframework.security.web.access.intercept.FilterSecurityInterce >> ptor.invoke(FilterSecurityInterceptor.java:109) >> > at >> org.springframework.security.web.access.intercept.FilterSecurityInterce >> ptor.doFilter(FilterSecurityInterceptor.java:83) >> > at >> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.do >> Filter(FilterChainProxy.java:380) >> > at >> org.springframework.security.web.access.ExceptionTranslationFilter.doFi >> lter(ExceptionTranslationFilter.java:97) >> > at >> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.do >> Filter(FilterChainProxy.java:380) >> > at >> org.springframework.security.web.session.SessionManagementFilter.doFilt >> er(SessionManagementFilter.java:100) >> > at >> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.do >> Filter(FilterChainProxy.java:380) >> > at >> org.springframework.security.web.authentication.AnonymousAuthentication >> Filter.doFilter(AnonymousAuthenticationFilter.java:78) >> > at >> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.do >> Filter(FilterChainProxy.java:380) >> > at >> org.springframework.security.web.servletapi.SecurityContextHolderAwareR >> equestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) >> > at >> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.do >> Filter(FilterChainProxy.java:380) >> > at >> org.springframework.security.web.savedrequest.RequestCacheAwareFilter.d >> oFilter(RequestCacheAwareFilter.java:35) >> > at >> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.do >> Filter(FilterChainProxy.java:380) >> > at >> org.springframework.security.web.authentication.AbstractAuthenticationP >> rocessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:18 >> 7) >> > at >> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.do >> Filter(FilterChainProxy.java:380) >> > at >> org.springframework.security.web.authentication.logout.LogoutFilter.doF >> ilter(LogoutFilter.java:105) >> > at >> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.do >> Filter(FilterChainProxy.java:380) >> > at >> org.springframework.security.web.context.SecurityContextPersistenceFilt >> er.doFilter(SecurityContextPersistenceFilter.java:79) >> > at >> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.do >> Filter(FilterChainProxy.java:380) >> > at >> org.springframework.security.web.FilterChainProxy.doFilter(FilterChainP >> roxy.java:169) >> > at >> org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(Del >> egatingFilterProxy.java:237) >> > at >> org.springframework.web.filter.DelegatingFilterProxy.doFilter(Delegatin >> gFilterProxy.java:167) >> > at >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applic >> ationFilterChain.java:235) >> > at >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFil >> terChain.java:206) >> > at >> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperVal >> ve.java:233) >> > at >> org.apache.catalina.core.StandardContextValve.__invoke(StandardContextV >> alve.java:191) >> > at >> org.apache.catalina.core.StandardContextValve.invoke(StandardContextVal >> ve.java) >> > at >> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.jav >> a:127) >> > at >> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.jav >> a: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:8 >> 57) >> > 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 >> >> <[email protected]> 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:[email protected]] >> >> >> Sent: Friday, November 04, 2011 11:56 >> >> >> To: [email protected] >> >> >> 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:[email protected]] >> >> >> > Sent: Thursday, November 03, 2011 17:54 >> >> >> > To: [email protected] >> >> >> > 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 >> >> >> > <[email protected]> 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:[email protected]] >> >> >> > >> Sent: Wednesday, November 02, 2011 16:11 >> >> >> > >> To: [email protected] >> >> >> > >> 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:[email protected]] >> >> >> > >> Sent: Wednesday, November 02, 2011 15:54 >> >> >> > >> To: [email protected] >> >> >> > >> Subject: Re: abort loading lazy components >> >> >> > >> >> >> >> > >> On Wed, Nov 2, 2011 at 4:49 PM, Michal Wegrzyn >> >> >> > >> <[email protected]> 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: [email protected] >> >> >> > For additional commands, e-mail: [email protected] >> >> > >> >> > >> >> >> >> >> >> >> >> -- >> >> Martin Grigorov >> >> jWeekend >> >> Training, Consulting, Development >> >> http://jWeekend.com >> >> >> >> -------------------------------------------------------------------- >> - >> >> To unsubscribe, e-mail: [email protected] >> >> For additional commands, e-mail: [email protected] >> > >> > >> >> >> >> -- >> Martin Grigorov >> jWeekend >> Training, Consulting, Development >> http://jWeekend.com >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] > >
-- Martin Grigorov jWeekend Training, Consulting, Development http://jWeekend.com --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
