You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Hudson (JIRA)" <ji...@apache.org> on 2010/08/27 01:12:55 UTC

[jira] Commented: (WICKET-2827) Removed page might revive when push back-button

    [ https://issues.apache.org/jira/browse/WICKET-2827?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12903138#action_12903138 ] 

Hudson commented on WICKET-2827:
--------------------------------

Integrated in Apache Wicket 1.4.x #126 (See [https://hudson.apache.org/hudson/job/Apache%20Wicket%201.4.x/126/])
    Issue: WICKET-2827


> Removed page might revive when push back-button
> -----------------------------------------------
>
>                 Key: WICKET-2827
>                 URL: https://issues.apache.org/jira/browse/WICKET-2827
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.4.7
>         Environment: Windows XP SP3 (32bit), Java 6.0 update 19, and Tomcat 6.0.20
>            Reporter: IWAMURO Motonori
>            Assignee: Igor Vaynberg
>             Fix For: 1.4.11
>
>         Attachments: expire-test.zip, removepage.patch, removepage2.patch
>
>
> Hi.
> The removed page might revive.
> This is caused in the following conditions:
> 1) "getPageMap().remove(this)" or "getPageMap().remove()" on onXXX() handler. (e.g. Link#onClick())
> 2) Screen transition using "setResponsePage(NextPage.class)".
> 3) Push back-button on NextPage.
> 4) The removed page revive.
> This cause is as follows:
> a) When NextPage is displayed, the removed page remains in  "org.apache.wicket.protocol.http.SecondLevelCacheSessionStore.SecondLevelCachePageMap.lastPage".
> b) When the removed page is re-displayed by back-button, SecondLevelCachePageMap.get(int, int) revive the page by lastPage.
> The problem doesn't happen when use "setResponsePage(new NextPage())" instead of "setResponsePage(NextPage.class)".
> Because "lastPage" is overwritten by the instance of NextPage.
> It is my patch as follows:
> Index: src/main/java/org/apache/wicket/protocol/http/SecondLevelCacheSessionStore.java
> ===================================================================
> --- src/main/java/org/apache/wicket/protocol/http/SecondLevelCacheSessionStore.java	(revision 930858)
> +++ src/main/java/org/apache/wicket/protocol/http/SecondLevelCacheSessionStore.java	(working copy)
> @@ -348,6 +348,7 @@
>  			{
>  				getStore().removePage(sessionId, getName(), -1);
>  			}
> +			lastPage = null;
>  		}
>  
>  		/**
> @@ -361,6 +362,9 @@
>  			{
>  				getStore().removePage(sessionId, getName(), entry.getNumericId());
>  			}
> +			if (lastPage instanceof Page && ((Page) lastPage).getPageMapEntry() == entry) {
> +				lastPage = null;
> +			}
>  		}
>  
>  		private IPageStore getStore()

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.