[ https://issues.apache.org/jira/browse/WICKET-6452?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16153547#comment-16153547 ]
KAHA commented on WICKET-6452: ------------------------------ Now we are using wicket 7.8.0 yes you are right it is similar as WICKET-4733. But 4733 was about StalePageExceptions. Here is no exception. Here is problem with serialization and deserialization page .. Store Page 107 on session node01afimri2ixqlb14azexfgs28gg0 //PAGE IS SERIALIZED Store Page 108 on session node01afimri2ixqlb14azexfgs28gg0 Get Page 107 for session node01afimri2ixqlb14azexfgs28gg0 result null //DESERIALIZATION RETURN NULL and this is reason to create new page instance > 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 > 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 (v6.4.14#64029)