WicketRuntimeException - Pagemap locked by another thread

Hi Servoy,

This is another error which we are getting in the Web Client but only when run from a server (never in Servoy Developer). The error is random and cannot be reproduced at will. What might be causing this issue?

Thanks for your help!

Here are some more details about these errors from the log:

org.apache.wicket.protocol.http.request.InvalidUrlException: org.apache.wicket.WicketRuntimeException: After 1 minute the Pagemap null is still locked by: Thread[http-8080-2,5,main], giving up trying to get the page for path: 3:1 
    	at org.apache.wicket.protocol.http.WebRequestCycleProcessor.resolve(WebRequestCycleProcessor.java:262) 
    	at com.servoy.j2db.server.headlessclient.WebClientsApplication$5.resolve(WebClientsApplication.java:465) 
    	at org.apache.wicket.RequestCycle.step(RequestCycle.java:1339) 
    	at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1465) 
    	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:8) 
    	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:127) 
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:554) 
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) 
    	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) 
    	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
    	at java.lang.Thread.run(Unknown Source) 
    Caused by: org.apache.wicket.WicketRuntimeException: After 1 minute the Pagemap null is still locked by: Thread[http-8080-2,5,main], giving up trying to get the page for path: 3:1 
    	at java.lang.Class.isArray(Native Method) 
    	at org.mozilla.javascript.ScriptRuntime.toBoolean(ScriptRuntime.java:268) 
    	at org.mozilla.javascript.Interpreter.stack_boolean(Interpreter.java:4878) 
    	at org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.java:3301) 
    	at org.mozilla.javascript.Interpreter.interpret(Interpreter.java:2680) 
    	at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:166) 
    	at com.servoy.j2db.scripting.ScriptEngine.executeFunction(ScriptEngine.java:528) 
    	at com.servoy.j2db.FormController.executeFunction(FormController.java:4071) 
    	at com.servoy.j2db.FormController.executeFormMethod(FormController.java:4393) 
    	at com.servoy.j2db.FormController.executeOnLoadMethod(FormController.java:4252) 
    	at com.servoy.j2db.scripting.CreationalPrototype.get(CreationalPrototype.java:190) 
    	at org.mozilla.javascript.ScriptableObject.getProperty(ScriptableObject.java:1641) 
    	at org.mozilla.javascript.ScriptRuntime.getObjectElem(ScriptRuntime.java:1399) 
    	at org.mozilla.javascript.ScriptRuntime.getObjectElem(ScriptRuntime.java:1378) 
    	at org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.java:3379) 
    	at org.mozilla.javascript.Interpreter.interpret(Interpreter.java:2680) 
    	at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:166) 
    	at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:387) 
    	at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3134) 
    	at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:165) 
    	at com.servoy.j2db.scripting.ScriptEngine.executeFunction(ScriptEngine.java:528) 
    	at com.servoy.j2db.FormController.executeFunction(FormController.java:4071) 
    	at com.servoy.j2db.FormController.executeFormMethod(FormController.java:4393) 
    	at com.servoy.j2db.FormController.executeOnLoadMethod(FormController.java:4252) 
    	at com.servoy.j2db.FormManager.getFormController(FormManager.java:848) 
    	at com.servoy.j2db.server.headlessclient.dataui.WebTabFormLookup.getWebForm(WebTabFormLookup.java:147) 
    	at com.servoy.j2db.server.headlessclient.dataui.WebTabFormLookup.getWebForm(WebTabFormLookup.java:135) 
    	at com.servoy.j2db.server.headlessclient.dataui.WebTabFormLookup.getDefaultSort(WebTabFormLookup.java:123) 
    	at com.servoy.j2db.server.headlessclient.dataui.WebTabPanel.getDefaultSort(WebTabPanel.java:782) 
    	at com.servoy.j2db.server.headlessclient.dataui.WebTabPanel.setRecord(WebTabPanel.java:654) 
    	at com.servoy.j2db.dataprocessing.DataAdapterList.setRecord(DataAdapterList.java:381) 
    	at com.servoy.j2db.server.headlessclient.dataui.WebDataRenderer.refreshRecord(WebDataRenderer.java:310) 
    	at com.servoy.j2db.FormController.refreshAllPartRenderers(FormController.java:2231) 
    	at com.servoy.j2db.FormController.valueChanged(FormController.java:2311) 
    	at com.servoy.j2db.FormController.notifyVisible(FormController.java:3085) 
    	at com.servoy.j2db.server.headlessclient.dataui.WebTabFormLookup.notifyVisible(WebTabFormLookup.java:177) 
    	at com.servoy.j2db.server.headlessclient.dataui.WebTabPanel.setCurrentForm(WebTabPanel.java:472) 
    	at com.servoy.j2db.server.headlessclient.dataui.WebTabPanel.initalizeFirstTab(WebTabPanel.java:527) 
    	at com.servoy.j2db.server.headlessclient.dataui.WebEventExecutor$5.component(WebEventExecutor.java:650) 
    	at com.servoy.j2db.server.headlessclient.dataui.WebEventExecutor$5.component(WebEventExecutor.java:1) 
    	at org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:920) 
    	at org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:935) 
    	at org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:935) 
    	at org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:935) 
    	at org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:935) 
    	at org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:935) 
    	at org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:935) 
    	at org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:935) 
    	at org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:935) 
    	at org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:935) 
    	at org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:935) 
    	at org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:935) 
    	at org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:935) 
    	at org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:935) 
    	at org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:935) 
    	at com.servoy.j2db.server.headlessclient.dataui.WebEventExecutor.generateResponse(WebEventExecutor.java:646) 
    	at com.servoy.j2db.server.headlessclient.dataui.WebEventExecutor.onEvent(WebEventExecutor.java:438) 
    	at com.servoy.j2db.server.headlessclient.dataui.WebEventExecutor$2.onEvent(WebEventExecutor.java:174) 
    	at org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:177) 
    	at org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:312) 
    	at org.apache.wicket.request.target.component.listener.BehaviorRequestTarget.processEvents(BehaviorRequestTarget.java:157) 
    	at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92) 
    	at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1279) 
    	at org.apache.wicket.RequestCycle.step(RequestCycle.java:1358) 
    	... 20 more

Any help on this will be greatly appreciated since we are getting these errors quite often now.

Some additional information about these issues:

The Servoy version where we started to get this problem is 6.0.6 i1-build 1233

Created a case for this bug: https://support.servoy.com/browse/SVY-2162