[
https://issues.apache.org/jira/browse/WICKET-5998?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14962223#comment-14962223
]
Martin Grigorov commented on WICKET-5998:
-----------------------------------------
I remember discussing this with Igor and Matej back in 1.3.x/1.4.x days. It is
a known issue.
Here are some links:
- WICKET-4012
- http://markmail.org/message/krbwbcva3cxm6za7
In all discussions I remember of the short answer was: this is the safer
approach.
But as Matej mentioned in the second link we can add a request flag so the
second attempt is ignored. Just like onConfigure() works.
> Page is detached twice in same AJAX request
> -------------------------------------------
>
> Key: WICKET-5998
> URL: https://issues.apache.org/jira/browse/WICKET-5998
> Project: Wicket
> Issue Type: Bug
> Components: wicket
> Affects Versions: 7.0.0
> Reporter: Martijn Dashorst
> Priority: Minor
>
> While debugging some code I noticed that detaching happens twice during the
> same (AJAX) request.
> First through `ListenerInterfaceRequestHandler.detach()` and next through
> `AjaxRequestHandler.detach(IRequestCycle)`.
> The following stack traces show the code paths.
> {code}
> Thread [qtp1297836716-57] (Suspended (breakpoint at line 858 in MyWebPage))
> MyWebPage.onDetach() line: 858
> MyWebPage(Component).detach() line: 1162
> PageAndComponentProvider(PageProvider).detach() line: 330
> ListenerInterfaceRequestHandler.detach(IRequestCycle) line: 128
> RequestCycle$HandlerExecutor.detach(IRequestHandler) line: 876
> RequestCycle$HandlerExecutor(RequestHandlerStack).detach() line: 180
> RequestCycle.onDetach() line: 641
> RequestCycle.detach() line: 594
> RequestCycle.processRequestAndDetach() line: 297
> WicketFilter.processRequestCycle(RequestCycle, WebResponse,
> HttpServletRequest, HttpServletResponse, FilterChain) line: 261
> WicketFilter.processRequest(ServletRequest, ServletResponse,
> FilterChain) line: 203
> WicketFilter.doFilter(ServletRequest, ServletResponse, FilterChain)
> line: 284
> Thread [qtp1297836716-57] (Suspended (breakpoint at line 858 in MyWebPage))
> MyWebPage.onDetach() line: 858
> MyWebPage(Component).detach() line: 1162
> AjaxRequestHandler$1(PartialPageUpdate).detach(IRequestCycle) line: 417
> AjaxRequestHandler.detach(IRequestCycle) line: 277
> RequestCycle$HandlerExecutor.detach(IRequestHandler) line: 876
> RequestCycle$HandlerExecutor(RequestHandlerStack).detach() line: 180
> RequestCycle.onDetach() line: 641
> RequestCycle.detach() line: 594
> RequestCycle.processRequestAndDetach() line: 297
> WicketFilter.processRequestCycle(RequestCycle, WebResponse,
> HttpServletRequest, HttpServletResponse, FilterChain) line: 261
> WicketFilter.processRequest(ServletRequest, ServletResponse,
> FilterChain) line: 203
> WicketFilter.doFilter(ServletRequest, ServletResponse, FilterChain)
> line: 284
> {code}
> Is this something that can be prevented? If you have a big component tree,
> detaching twice can be quite expensive.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)