Details
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.
Attachments
Attachments
Issue Links
- is related to
-
WICKET-5471 Store the page if it is known that it will be used in a following request
- Resolved