You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Martijn Dashorst (JIRA)" <ji...@apache.org> on 2007/09/07 18:18:31 UTC

[jira] Updated: (WICKET-487) Buggy behaviour in PageMap.access(IPageMapEntry,int). Wicket1.2.4

     [ https://issues.apache.org/jira/browse/WICKET-487?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Martijn Dashorst updated WICKET-487:
------------------------------------

    Fix Version/s: 1.2.7

> Buggy behaviour in PageMap.access(IPageMapEntry,int). Wicket1.2.4
> -----------------------------------------------------------------
>
>                 Key: WICKET-487
>                 URL: https://issues.apache.org/jira/browse/WICKET-487
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.2.4, 1.2.5
>            Reporter: Kadir Sener GUMUS
>             Fix For: 1.2.7
>
>
> On 4/19/07, Kadir Sener GUMUS <ch...@gmail.com> wrote:
> Hi all,
> in our application, we were experiencing PageExpired pages. When i digged in wicket sources i found something causes my problem and now it is ok after change the behaviour. I dont know if it was fixed in later releases, i wanted to share that you all. 
>  
> Plz enlighten me if i am wrong or that is an expected behaviour. Let me explain the case:
> Assume that we have a pageMap contains 3 page entry inside as ordered as "pageA.version0, pageB.version0, pageB.version1"  and we pressed the back button from pageB.v1 to pageB.v0!  Before calling this "access(IPageMapEntry,int)" method in "get(int,int)" of PageMap, "page.getVersion(versionNumber)" method is called. In that method, if the page goes back to initial version(0), versionManager is removed! Therefore, " topPage.getVersions()" returns 1 as default. Consequently, "else" block was running and removing whole page (pageB), and......Bomb!! "PageExpired" :)
>  
> Here it is the changed code:
>  
> ....(PageMap.class)
> private
> final void access( final IPageMapEntry entry, final int version){ 
> .....
> if (top instanceof Page) 
> {
> // If there's more than one version
> Page topPage = (Page)top; 
> if (topPage.getVersions() > 1) 
> {
> // Remove version the top access version (-1)
> topPage.getVersion(topAccess.getVersion()-1); 
> }
> //--- PLZ look at here!!  (K.GUMUS)
> //else
> else if (topPage.getNumericId() != access.id && topPage.getCurrentVersionNumber() != access. version) 
> {
> // Remove whole page
> remove(topPage); 
> }
> }
> ....
> regards,
> Kadir Sener GUMUS

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