[
https://issues.apache.org/jira/browse/WICKET-5499?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
David Rain updated WICKET-5499:
-------------------------------
Description:
After migration from 6.12.0 to 6.13.0 our app stopped working.
I figured out that there is a new condition in Page#dirty(final boolean
isInitialization) on line 288:
if (isInitialization == false)
{
pageManager.touchPage(this);
}
That means that nely constructed page does not get touched thus is not stored
in page store.
The problem is that when I do something like this
printPage = new PrintPage(event.getFormId(), event.getFormData());
PageProvider pp = new PageProvider(printPage);
RenderPageRequestHandler rh = new RenderPageRequestHandler(pp);
CharSequence url = RequestCycle.get().urlFor(rh);
I get an URL pointing to page with id X - but that page is not found because it
was not stored and I ends with nonsense PageExpired exception.
I notice that 6.13.0 version fixed some bugs with stateless / statefull pages,
etc. so that may be the cause. Nevertheless I think it's a bug.
If you do not want to touch page during creation, then it must get touched
whenever it is involved in some request handler.
was:
After migration from 6.12.0 to 6.13.0 our app stopped working.
I figured out that there is a new condition in Page#dirty(final boolean
isInitialization) on line 288:
if (isInitialization == false)
{
pageManager.touchPage(this);
}
That means that nely constructed page does not get touched thus is not stored
in page store.
The problém is that when I do something like this
printPage = new PrintPage(event.getFormId(), event.getFormData());
PageProvider pp = new PageProvider(printPage);
RenderPageRequestHandler rh = new RenderPageRequestHandler(pp);
CharSequence url = RequestCycle.get().urlFor(rh);
I get an URL pointing to page with id X - but that page is not found because it
was not stored and I ends with nonsense PageExpired exception.
I notice that 6.13.0 version fixed some bugs with stateless / statefull pages,
etc. so that may be the cause. Nevertheless I think it's a bug.
If you do not want to touch page during creation, then it must get touched
whenever it is involved in some request handler.
> Page is not touched during initialization
> -----------------------------------------
>
> Key: WICKET-5499
> URL: https://issues.apache.org/jira/browse/WICKET-5499
> Project: Wicket
> Issue Type: Bug
> Components: wicket
> Affects Versions: 6.13.0
> Environment: Windows 7 64-bit
> JDK/JRE 1.6.0_29
> Reporter: David Rain
> Labels: dirty, expired, page, touch, wicket
>
> After migration from 6.12.0 to 6.13.0 our app stopped working.
> I figured out that there is a new condition in Page#dirty(final boolean
> isInitialization) on line 288:
> if (isInitialization == false)
> {
> pageManager.touchPage(this);
> }
> That means that nely constructed page does not get touched thus is not stored
> in page store.
> The problem is that when I do something like this
> printPage = new PrintPage(event.getFormId(), event.getFormData());
> PageProvider pp = new PageProvider(printPage);
> RenderPageRequestHandler rh = new RenderPageRequestHandler(pp);
> CharSequence url = RequestCycle.get().urlFor(rh);
> I get an URL pointing to page with id X - but that page is not found because
> it was not stored and I ends with nonsense PageExpired exception.
> I notice that 6.13.0 version fixed some bugs with stateless / statefull
> pages, etc. so that may be the cause. Nevertheless I think it's a bug.
> If you do not want to touch page during creation, then it must get touched
> whenever it is involved in some request handler.
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)