[
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.