Unexpected (random) ....http.PageExpiredException

Forum to discuss the Web client version of Servoy.

Unexpected (random) ....http.PageExpiredException

Postby norbert » Wed Sep 21, 2011 4:52 pm

In our (webclient only) solution, we have the following problem. After using the system for some time
we get the following exception out of the blue:

Code: Select all
2011-09-21 15:55 http-8080-4 ERROR com.servoy.j2db.util.Debug Error rendering the page null
org.apache.wicket.protocol.http.PageExpiredException: Cannot find the rendered page in session [pagemap=dialog,componentPath=8:1,versionNumber=0]
     at org.apache.wicket.protocol.http.WebRequestCycleProcessor.resolve(WebRequestCycleProcessor.java:197)
     at com.servoy.j2db.server.headlessclient.WebClientsApplication$5.resolve(WebClientsApplication.java:433)
     at org.apache.wicket.RequestCycle.step(RequestCycle.java:1310)
     at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1436)
     at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
     at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:486)
     at com.servoy.j2db.server.servlets.Zl.doGet(Zl.java:4)
     at org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:138)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
     at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:567)
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
     at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
     at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
     at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
     at java.lang.Thread.run(Unknown Source)


This exception occurs while actively using the system, so it's not due to the fact that the user has been sleeping. It
occurs quite often, most of the time between 45 and 60 minutes after logging in.
From that moment on, the client session is broken and the user is having a hard time logging in again as the browser tries to restore the old session.
It occurs both in firefox and IE at random timepoints. However, we have not been able to create a fixed sequence
of actions to reproduce the exception.

Has someone seen similar behavior or does someone have any idea why this page expired exception occurs while using the system?

(Using Servoy 5.2.9. The session-timeout in web.xml is set to 30).
User avatar
norbert
 
Posts: 24
Joined: Tue Apr 26, 2011 5:24 pm
Location: Almere

Re: Unexpected (random) ....http.PageExpiredException

Postby jcompagner » Thu Sep 22, 2011 11:27 am

does the client use the back AND forward button somehow?
are you using a lot of (modal) dialogs/windows?
Johan Compagner
Servoy
User avatar
jcompagner
 
Posts: 8086
Joined: Tue May 27, 2003 7:26 pm
Location: The Internet

Re: Unexpected (random) ....http.PageExpiredException

Postby norbert » Thu Sep 22, 2011 11:56 am

The Back and Forward buttons are not used by the client.
We have an interface with several tab-panels (+/- 10) on the main form. From each tab-panel/form on the main view, the client can open a modal dialog,
but there are at most 3 dialogs open at a time (using application.showFormInDialog).
We're really lost on where to search for the problem. The problem is very serious as we cannot use the system reliably at the moment.
User avatar
norbert
 
Posts: 24
Joined: Tue Apr 26, 2011 5:24 pm
Location: Almere

Re: Unexpected (random) ....http.PageExpiredException

Postby jcompagner » Thu Sep 22, 2011 12:14 pm

can you test on 6 if that helps? there are some changes there.
Johan Compagner
Servoy
User avatar
jcompagner
 
Posts: 8086
Joined: Tue May 27, 2003 7:26 pm
Location: The Internet

Re: Unexpected (random) ....http.PageExpiredException

Postby norbert » Wed Oct 05, 2011 10:33 am

It took us some time to migrate and test our solution on Servoy 6(.0.1) and we see the same problem happening there.
It happens both with static forms and forms created in the solution model. Again, the exception occurs after some time after
logging in (45-60 minutes).
We're really in need of some help here as we haven't got any clue where to search for a solution/workaround.
User avatar
norbert
 
Posts: 24
Joined: Tue Apr 26, 2011 5:24 pm
Location: Almere

Re: Unexpected (random) ....http.PageExpiredException

Postby jcompagner » Wed Oct 05, 2011 12:25 pm

very hard to say then, if the session does not expire (and it seems it didn't)
and no back/forward buttons are used then this shouldn't happen.

I see that it is a dialog that you want to show? Is it showing page expired in a modal dialog?
Johan Compagner
Servoy
User avatar
jcompagner
 
Posts: 8086
Joined: Tue May 27, 2003 7:26 pm
Location: The Internet

Re: Unexpected (random) ....http.PageExpiredException

Postby norbert » Wed Oct 05, 2011 12:36 pm

Yes, the page expired exception occurs always when showing a modal dialog. But it's not happing on 1 dialog only, it's completely random.
If the 'page expired' message occurs in the dialog and the user does a refresh F5 that dialog will eventually appear. However, the next 'page expired'
dialog will occur very soon after that.
User avatar
norbert
 
Posts: 24
Joined: Tue Apr 26, 2011 5:24 pm
Location: Almere

Re: Unexpected (random) ....http.PageExpiredException

Postby jcompagner » Wed Oct 05, 2011 12:54 pm

ok
if it is really always inside a modal dialog
do you shown in that same dialog (with that same name) multiply pages? and then after showing lets say more then 10 or 15 over time, you suddenly start getting that page expired error?
Johan Compagner
Servoy
User avatar
jcompagner
 
Posts: 8086
Joined: Tue May 27, 2003 7:26 pm
Location: The Internet

Re: Unexpected (random) ....http.PageExpiredException

Postby norbert » Wed Oct 05, 2011 4:09 pm

Yes, it looks like we have been able to reproduce the problem:

Code: Select all
function lsfd_TEST_start() {
   globals.lsfd_TEST_showWidget(-1);
}

/**
* @properties={typeid:24,uuid:"B21FB1C9-B3E3-4141-B887-61B705A8D5E5"}
*/
function lsfd_TEST_closeForm(param, wid) {
   application.closeForm(param);
   globals.lsfd_TEST_showWidget(wid);
}

/**
* @properties={typeid:24,uuid:"CDAE3914-2102-476A-9CB8-CA691E6C4635"}
*/
function lsfd_TEST_showWidget(wid) {
   var vFormName;
   var vDate, vStartDate;
      
   if (wid == -1) {
      wid = 0;
   } else if (wid >= 14) {
      wid = 0;
   } else {
      wid++;
   }
   
   application.showFormInDialog(globals.lsfd_gWidgetArray[wid],-1,-1,-1,-1,null,false,false,globals.lsfd_gWidgetArray[wid]);
   
   vDate = new Date();
   vStartDate = new Date(vDate.getTime() + 1000);
   
   plugins.scheduler.addJob(application.getUUID().toString(),vStartDate,globals.lsfd_TEST_closeForm,0,0,null,[globals.lsfd_gWidgetArray[wid],wid]);
         
}


globals.lsfd_gWidgetArray is an array containing form names.

Each modal is opened with a unique name (parameter 9 of showFormInDialog). After we have opened about 10-15 (wid == 10 or 15 in the example above) modals and we try to open the first form we have opened, the page expired exception occurs. If we set the max to 10 modals, no page expired exception occurs. If we set the max to 15, the error occurs.
Is there a max to the number of (named) modals that can be created? We need the named modals to show each modal in its own dialog window when modals get stacked. Is there a way, we can still give each form its own windowname without the pageexpiredexception?
Thanks for your help.
User avatar
norbert
 
Posts: 24
Joined: Tue Apr 26, 2011 5:24 pm
Location: Almere

Re: Unexpected (random) ....http.PageExpiredException

Postby jcompagner » Wed Oct 05, 2011 4:44 pm

yes there is a maximum and that is 15 or something like that.

But if you if you just show them one at a time after each other
and then the oldest one again then we should generate a new page for that with the same form.

Can you create a sample solution for that and add it to a case so we can have a look?
Johan Compagner
Servoy
User avatar
jcompagner
 
Posts: 8086
Joined: Tue May 27, 2003 7:26 pm
Location: The Internet

Re: Unexpected (random) ....http.PageExpiredException

Postby norbert » Wed Oct 05, 2011 4:50 pm

Unfortunately, that's not what happens. It generates a pageexpiredexception. Both in Servoy 5.2.9 (and 5.2.10) and Servoy 6.0.1.
We have a sample solution and we will generate a case for that immediately.
User avatar
norbert
 
Posts: 24
Joined: Tue Apr 26, 2011 5:24 pm
Location: Almere

Re: Unexpected (random) ....http.PageExpiredException

Postby norbert » Wed Oct 05, 2011 5:08 pm

Reported case 422485.
User avatar
norbert
 
Posts: 24
Joined: Tue Apr 26, 2011 5:24 pm
Location: Almere

Re: Unexpected (random) ....http.PageExpiredException

Postby maarten » Tue Nov 08, 2011 2:22 pm

Slightly off topic..
Would be nice to have some kind of a reference list of "common" exceptions with a short explanation in the Servoy Wiki?
Exceptions that occur in the admin log are often hard to track down.
I'm running webclient forms as iFrames on a web site and I'm occasionally also seeing this "cannot find rendered.."
Not sure if this is just because of an expired session.

Code: Select all
org.apache.wicket.protocol.http.PageExpiredException: Cannot find the rendered page in session [pagemap=null,componentPath=3:1,versionNumber=1]
       at org.apache.wicket.protocol.http.WebRequestCycleProcessor.resolve(WebRequestCycleProcessor.java:197)
       at com.servoy.j2db.server.headlessclient.WebClientsApplication$5.resolve(WebClientsApplication.java:433)
       at org.apache.wicket.RequestCycle.step(RequestCycle.java:1310)
       at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1436)
       at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
       at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:486)
       at com.servoy.j2db.server.servlets.Zl.doGet(Zl.java:11)
       at org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:138)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
       at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:567)
       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
       at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
       at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
       at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
       at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:769)
       at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:698)
       at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:891)
       at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
       at java.lang.Thread.run(Thread.java:680)
Maarten Berkenbosch
User avatar
maarten
 
Posts: 797
Joined: Wed Apr 23, 2003 10:52 pm
Location: Amersfoort, Netherlands

Re: Unexpected (random) ....http.PageExpiredException

Postby jcompagner » Tue Nov 08, 2011 6:20 pm

don't think that that is an expired session, that could be for example a back/forward button problem (thats not supported by servoy)
or anything that rollbacks a page version and then a later page version is requested again it could be quite a lot of different things and is really quite deep into servoy, not something you can do much about
(except not using back And forward buttons)
Johan Compagner
Servoy
User avatar
jcompagner
 
Posts: 8086
Joined: Tue May 27, 2003 7:26 pm
Location: The Internet


Return to Servoy Web Client

Who is online

Users browsing this forum: No registered users and 4 guests