Yeah, this is what I wrote in my first comment:
"Thus the next pending Ajax request comes through, since wicket-ajax's
defaultPrecondition sees the markupId still present in the dom."
Perhaps we have to cancel out all scheduled callbacks for components
which are replaced via Ajax.
Sven
On 01/17/2013 11:34 AM, Ernesto Reinaldo Barreiro wrote:
Hi,
On Thu, Jan 17, 2013 at 11:17 AM, Sven Meier <[email protected]> wrote:
@Override
public void detach(Component component)
{
AjaxRequestTarget target = component.getRequestCycle().**
find(AjaxRequestTarget.class);
if (target != null)
{
stop(target);
}
super.detach(component);
}
A small nitpick:
Removing a component in an ART might not be the only reason why #detach()
is called. A developer might call component#detach() to force a LDM to
reload on the next render.
Sven
Just another caveat: what happens if during rending time, before call AJAX
response is processed, the behavior is re-fired at client side? Wouldn't
this produce a component not found exception?