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

Palancher aurélien commented on WICKET-6452:
--------------------------------------------

hi,

i had the same problem a few weeks ago (in 8.0.X)

When you open new pages in new tabs, wicket uses datastore to keep track of 
them (with serialization). The issue is that your max disk cache size is not 
big enough to keep all data and wicket deletes the older one. Once you launch 
an ajax request, the page can not be retrieve from any cache (not the first 
level cache, and neigther the third level one - which is the disk) and the page 
store instanciate a new page, so your ajax request "fails"

 (i had this problem with new tabs whose pages had lazy loading)

This is imo a normal behavior and you should either reduce your page size 
(detachable models, etc...) or modify the resource setting to allow a bigger 
disk cache.

> Problem while multiple opening same page in WICkET 8.0.0-M6
> -----------------------------------------------------------
>
>                 Key: WICKET-6452
>                 URL: https://issues.apache.org/jira/browse/WICKET-6452
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 8.0.0-M6
>         Environment: Windows 10 64bit CZ Java(TM) SE Runtime Environment 
> (build 1.8.0_131-b11)
>            Reporter: KAHA
>            Priority: Major
>         Attachments: ABRA BI - Google Chrome 15.08.2017 13_33_45.mp4, ABRA BI 
> - Google Chrome 15.08.2017 13_33_45_x264.mov, test.zip
>
>
> As you can see on the video, there is a problem when I multiple open same 
> page. Each one page is rendered again and again and again (you can see it on 
> rapidly increasing page number). There were no problem with same excercise on 
> Wicket 7. 
> I think that problem is in method 
> org.apache.wicket.core.request.handler.PageProvider.getPageInstance(). In 
> Wicket 7 there was 
> if (pageInstance == null)
> {
>       resolvePageInstance(pageId, pageClass, pageParameters, renderCount);
>       if (pageInstance == null)
>       {
>               throw new PageExpiredException("Page with id '" + pageId + "' 
> has expired.");
>       }
> }
> return pageInstance;
> If pageInstance is null, method resolvePageInstance is called and 
> resolvePageInstance first trying to load page stored on disk (stored thanks 
> Serialization) and it will success. If there is no page stored on disk with 
> this pageID, than getPageSource().newPageInstance( ...  is called to create 
> new page instance.
> On other hand on the new wicket 8 same method 
> org.apache.wicket.core.request.handler.PageProvider.getPageInstance() looks 
> like this
> return getProvision().getPage();
> and In Provision class method getPage looks like this
> if (page == null && doesProvideNewPage())
> {
>               page = getPageSource().newPageInstance(pageClass, 
> pageParameters);
> }
> return page;
> if the page is null, method does not try to load page stored on the disk, but 
> imediatly creates a new instance and this is why same page is created many 
> times repeatly.
> But it is only my guess.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to