Well, JIRA looks to be down, so i'll reply here. The problem is, that in
onClick we do this:

        // Remove the popup's page map from the session
        getPage().getPageMap().remove();

        // Web page closes window using javascript code in
PopupCloseLink$1.html
        setResponsePage(new ClosePopupPage());

But that's wrong for various reasons. ClosePopupPage is stateless page, yet
we pass page instance. And also it is created in popup pagemap, which we
removed (but re-attached to session again, because of new ClosePopupPage());

As far as I can tell the fix is to change

setResponsePage(ClosePopupPage.class);

Which doesn't require ClosePopupPage instance stored in session (already
commited).

-Matej

On 9/3/07, Ate Douma <[EMAIL PROTECTED]> wrote:
>
> Matej Knopp wrote:
> > Will try to look at it today.
> That would be great!
>
> Thanks,
>
> Ate
>
> >
> > -Matej
> >
> > On 9/3/07, Ate Douma <[EMAIL PROTECTED]> wrote:
> >> Team,
> >>
> >> I've been trying to debug deeper into this problem but I have to admit
> my
> >> knowledge of wicket in this area is simply not deep enough yet
> >> and I'm stuck at it.
> >>
> >> Is someone else familiar enough with the PopupCloseLink feature?
> >> The pagemap manipulation it tries to do is clearly broken, even with
> the
> >> default REDIRECT_TO_BUFFER although it isn't noticed then.
> >> I'd like to see this fixed to be able to support popup windows in a
> >> portlet too for which I depend on REDIRECT_TO_RENDER.
> >> Just to make this very clear: this is *not* a portlet environment
> problem,
> >> it is broken in a "normal" servlet environment too.
> >> So and idea's or help is very much appreciated.
> >>
> >>
> >> Regards,
> >>
> >> Ate
> >>
> >> Ate Douma (JIRA) wrote:
> >>> PopupCloseLink broken with REDIRECT_TO_RENDER strategy
> >>> ------------------------------------------------------
> >>>
> >>>                  Key: WICKET-913
> >>>                  URL: https://issues.apache.org/jira/browse/WICKET-913
> >>>              Project: Wicket
> >>>           Issue Type: Bug
> >>>           Components: wicket
> >>>     Affects Versions: 1.3.0-beta3, 1.3.0-beta2
> >>>             Reporter: Ate Douma
> >>>             Priority: Critical
> >>>
> >>>
> >>> For portlet-support, the only usable render strategy is
> >> REDIRECT_TO_RENDER until JSR-286 containers are available.
> >>> So, I'm testing wicket-examples with REDIRECT_TO_RENDER and I noticed
> >> the PopupCloseLink in the linkomatic.Popup page example is broken then.
> >>> Note: this also doesn't work in a plain servlet environment either!
> >>>
> >>> As far as I have been able to discover so far (but I'm not much of an
> >> expert in this area), the PopupCloseLink#ClosePopupPage isn't properly
> >> recorded in the PageMap when it is set as the responsePage in
> >> PopupCloseLink.onClick().
> >>> The request url history from opening the PopupPage to after clicking
> the
> >> close link is as follows:
> >>> - open popup :
> >>
> /wicket-examples/linkomatic/wicket:bookmarkablePage=popuppagemap%3Aorg.apache.wicket.examples.linkomatic.Popup
> >>> - click close:
> >>
> /wicket-examples/linkomatic/wicket:interface=popuppagemap:0:close::ILinkListener::
> >>> - redirect to:
> >> /wicket-examples/linkomatic/wicket:interface=popuppagemap:0::::
> >>> ==> Popup is rendered again
> >>>
> >>> Somehow, removing the current page (Popup) in PopupCloseLink.onClick()
> >> from its pagemap doesn't seem to work correctly and/or the
> #ClosePopupPage
> >> isn't properly recorded in the pagemap when it is set as the response
> page.
> >>> With the default REDIRECT_TO_BUFFER, this problem doesn't surface as
> the
> >> #ClosePopupPage is rendered (to buffer) immediately so it doesn't need
> to be
> >> looked up in the pagemap after the subsequent redirect.
> >>> The weird thing is that if you close the the Popup page directly (not
> >> through the "close" link) and thereafter open another instance of the
> Popup
> >> page, everything works fine from then on.
> >>> Maybe this is an indication where the real problem might be, as these
> >> subsequent Popup page instances now have a version > 0:
> >>> - click close:
> >>
> /wicket-examples/linkomatic/wicket:interface=popuppagemap:1:close::ILinkListener::
> >>> - redirect to:
> >> /wicket-examples/linkomatic/wicket:interface=popuppagemap:0::::
> >>> ==> PopupCloseLink#ClosePopupPage is rendered (which contains <body
> >> onLoad="javascript:self.close()">)
> >>> I also checked if this is a new problem since beta2, but it was broken
> >> already then too.
> >>>
> >>
> >
>
>

Reply via email to