I’m getting this error on the web client periodically on differnent forms but they behave the same way in that a form is started by a showformindialog with then starts another form by showformsindialog which then may start another form. However when I close the top level forms and get back to the first form that was started and click on the X top right corner I get the error message and cannot close the form, I have to close the brower.
This occurs in live and not in Devleoper.
It occurs regularly enough to be a concern but can’t see how or why its a code issue … might it be a resource issue/constraint on the actual server, if so suggestions, I know memory is tight ?
rg.apache.wicket.protocol.http.PageExpiredException: Cannot find the rendered page in session [pagemap=Main,componentPath=5:222,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)
2011-11-30 23:45 http-8080-2 WARN com.servoy.j2db.util.Debug
I’ve also now can repeat it in the prod system. The error always occurs after the 16th showformindialog. In other words on the 16th form that is opened it can’t close and we get the error reported in the log.
Is something not releasing resources when I close each form or hit a count threshold or limit ?
Good news I guess …I’ve managed to recreate the issue in a test solution which I’ve uploaded. This sort of mirrors how the app is working from solution starting up with the various showformsindialog use.
You will see I use the globals on solutyion open to start frm_start, click on the button to open frm_a and this then closes the frm_start.
You then need to go in order click on each of the 16 buttons in turn and once the form loads close (x top right) then move onto the next button.
It may fail with only 1 button clicking it 16 times … don’t know but it certainly fails on my server as I described above.
Could you please suggest a fix/work around as the app opens many forms in dialog. The user also needs to wait until the client license expires before they can establish a connection again and use the system again.
Thanks.
============
Update:
I removed the application.closeform from the frm_a as I thought there may be a modal issue however it made no differnence
Am now testing in 6.03 and have encountered another issue.
I open a dialog (the form is in table view) the user selects a record and it automatically opens another dioalog from where they can print. The user then clicks a button with a controller.print(true) to print the record.
At that point all is good. If you then close the dialog and go back to the dialog with the table view and select another record to print we get a fatal error when the new dialog is opened (same form that was previously closed). The form displays a white screen saying an internal error has occurred.
Think I found a fix/work around, each time I open the form in a dialog I make sure the name is unique even if the same piece of code opens the dialog e.g:
but in your example you are already doing that, all windows are unique (a->q)
i also can’t get anything to go wrong in your sample, but seeing your latest message then i guess it should be all shown in the same window?
I modified your solution a bit so that it is more clear what is shown at what time
This is a differnent issue to the one I originally posted above, I encountered it as I was testing the fix for the first issue. 6.03 introduced this new issue which I had to find a work around.
Here’s a sample solution which causes the error. It uses the example data but you could using any table.
Click on the New Dialog button in the table view form, then click on the print button in the form that is opened. Open the PDF, then go back and select another row on the table view and repeat. You get an internal error.
To fix create a form variable x then amend the code behind the New Dialog button: