[ https://issues.apache.org/jira/browse/WICKET-1073?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12534997 ]
Matej Knopp commented on WICKET-1073: ------------------------------------- This actually doesn't make sense. this final Component component = (Component)markupIdToComponent.values().iterator().next(); should not be ComponentA when Panel is added to AjaxRequestTarget. There must be something else adding component to the target. Can you please attach a quickstart/testcase to reproduce this problem? > No Page found for component in AjaxRequestTarget.detach() > --------------------------------------------------------- > > Key: WICKET-1073 > URL: https://issues.apache.org/jira/browse/WICKET-1073 > Project: Wicket > Issue Type: Bug > Components: wicket > Affects Versions: 1.3.0-beta4 > Reporter: Matt Clark > Assignee: Matej Knopp > > Please see the scenario below, entered per Matej's request. I'm not 100% > sure I'm not doing something invalid by having a component add its ancestor > to the AjaxRequestTarget, but in my scenario the child doesn't necessarily > know the ancestor is eventually going to be added to the target. If Wicket > as able to handle the scenario where we can add components to the target > without knowing whether component being added will later be removed from the > page hierarchy, that would make it easier to have multiple components on a > page tied to a common model updated via Ajax. > http://www.nabble.com/forum/ViewPost.jtp?post=13191716&framed=y > * Assume the following hierarchy: > Page > - Panel > - RefreshingView > - ComponentA > * ComponentA receives an Ajax event (onClick(AjaxRequestTarget)) > * ComponentA eventually adds Panel to the AjaxRequestTarget > * Refreshing view is re-rendered as a part of the ajax request cycle, > generating a ComponentA(prime). Original ComponentA is now no longer a part > of the page hierarchy. > * During the detach phase, the following code in AjaxRequestTarget is called: > // detach the page if it was updated > if (markupIdToComponent.size() > 0) > { > final Component component = > (Component)markupIdToComponent.values().iterator().next(); > component.getPage().detach(); > } > * The object which comes out of the list (iterator().next()) appears to be > ComponentA, which is no longer in the page hierarchy. Therefore > component.getPage() fails with "No page found for component" -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.