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

Reply via email to