bernard created WICKET-4997:
-------------------------------

             Summary: Mounted bookmarkable Page not recreated on Session Expiry
                 Key: WICKET-4997
                 URL: https://issues.apache.org/jira/browse/WICKET-4997
             Project: Wicket
          Issue Type: Bug
          Components: wicket
    Affects Versions: 6.4.0
         Environment: JDK 7, GlassFish 3.1.2.2
            Reporter: bernard


With the default true of 
org.apache.wicket.settings.IPageSettings#getRecreateMountedPagesAfterExpiry() 
PageExpiryException is thrown a when any one of its links is clicked.

I find it very useful and in fact indispensible to rely on 
RecreateMountedPagesAfterExpiry especially on logout links.

But it doesn't seem to work for me in 6.4.0. I think this is because 
Link#getUrl() calls Component#utlFor() which requires a stateless page for this 
to work:

                if (page.isPageStateless())
                {
                        handler = new 
BookmarkableListenerInterfaceRequestHandler(provider, listener);
                }
                else
                {
                        handler = new ListenerInterfaceRequestHandler(provider, 
listener);
                }

With a stateless page a url is:

http://localhost:8080/wicket/HomePage?-1.ILinkListener-toolBar-signout

With a non stateless but bookmarkable page a url is:

http://localhost:8080/wicket/page?1-1.ILinkListener-toolBar-signout

So I guess that a stateful page cannot be recovered because after session 
expiry Wicket cannot find out what the page is. It is not coded in the URL.

Looking at the semantics of UrlFor(), I thought this might be a bug and I 
copyed and changed the code in my Link subclass from

//              if (page.isPageStateless()) {
to:
        if (page.isBookmarkable()) {
                
It works as expected but I don't know whether it would break other things if 
implemented in Wicket.

I guess I am not the only one who needs recovery for bookmarkable pages in this 
way. Would it be possible to change Wicket to fix this so it becomes possible?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to