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

[jira] [Updated] (WICKET-6452) Problem while multiple opening same page in WICkET 8.0.0-M6

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

KAHA updated WICKET-6452:
-------------------------
    Description: 
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 proble 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 rendered many times.

But it is only my guess.

  was:
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 proble 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 rendered many times.

But it is only my guess.


> 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
>
>
> 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 proble 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 rendered many times.
> But it is only my guess.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)