I’m getting internal errors in the browser (all browsers) which show in the log as page rendering errors. The log shows…
2007-10-28 08:50 http-8080-3 ERROR com.servoy.j2db.util.Debug Error rendering the page contacts_card
org.apache.wicket.WicketRuntimeException: Cannot modify component hierarchy during render phase
at org.apache.wicket.Component.checkHierarchyChange(Component.java:2879)
at org.apache.wicket.MarkupContainer.remove(MarkupContainer.java:522)
at org.apache.wicket.MarkupContainer.addedComponent(MarkupContainer.java:901)
at org.apache.wicket.MarkupContainer.add(MarkupContainer.java:151)
at com.servoy.j2db.server.headlessclient.dataui.WebTabPanel.onBeforeRender(Unknown Source)
at org.apache.wicket.Component.beforeRender(Component.java:846)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1472)
at org.apache.wicket.Component.beforeRender(Component.java:856)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1472)
at org.apache.wicket.Component.beforeRender(Component.java:856)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1472)
at org.apache.wicket.Component.beforeRender(Component.java:856)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1472)
at org.apache.wicket.Component.beforeRender(Component.java:856)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1472)
at org.apache.wicket.Component.beforeRender(Component.java:856)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1472)
at org.apache.wicket.Component.beforeRender(Component.java:856)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1472)
at org.apache.wicket.Component.beforeRender(Component.java:856)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1472)
at org.apache.wicket.Component.beforeRender(Component.java:856)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1472)
at org.apache.wicket.Component.beforeRender(Component.java:856)
at org.apache.wicket.Page.renderPage(Page.java:885)
at org.apache.wicket.protocol.http.WebRequestCycle.redirectTo(WebRequestCycle.java:164)
at org.apache.wicket.request.target.component.PageRequestTarget.respond(PageRequestTarget.java:59)
at org.apache.wicket.request.AbstractRequestCycleProcessor.respond(AbstractRequestCycleProcessor.java:103)
at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1037)
at org.apache.wicket.RequestCycle.step(RequestCycle.java:1107)
at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1176)
at org.apache.wicket.RequestCycle.request(RequestCycle.java:499)
at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:257)
at org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:126)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at sun.reflect.GeneratedMethodAccessor253.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:244)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:276)
at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:162)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:283)
at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:56)
at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:189)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:613)
2007-10-28 08:50 http-8080-3 ERROR org.apache.wicket.RequestCycle Cannot modify component hierarchy during render phase
org.apache.wicket.WicketRuntimeException: Cannot modify component hierarchy during render phase
at org.apache.wicket.Component.checkHierarchyChange(Component.java:2879)
at org.apache.wicket.MarkupContainer.remove(MarkupContainer.java:522)
at org.apache.wicket.MarkupContainer.addedComponent(MarkupContainer.java:901)
at org.apache.wicket.MarkupContainer.add(MarkupContainer.java:151)
at com.servoy.j2db.server.headlessclient.dataui.WebTabPanel.onBeforeRender(Unknown Source)
at org.apache.wicket.Component.beforeRender(Component.java:846)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1472)
at org.apache.wicket.Component.beforeRender(Component.java:856)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1472)
at org.apache.wicket.Component.beforeRender(Component.java:856)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1472)
at org.apache.wicket.Component.beforeRender(Component.java:856)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1472)
at org.apache.wicket.Component.beforeRender(Component.java:856)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1472)
at org.apache.wicket.Component.beforeRender(Component.java:856)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1472)
at org.apache.wicket.Component.beforeRender(Component.java:856)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1472)
at org.apache.wicket.Component.beforeRender(Component.java:856)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1472)
at org.apache.wicket.Component.beforeRender(Component.java:856)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1472)
at org.apache.wicket.Component.beforeRender(Component.java:856)
at org.apache.wicket.Page.renderPage(Page.java:885)
at org.apache.wicket.protocol.http.WebRequestCycle.redirectTo(WebRequestCycle.java:164)
at org.apache.wicket.request.target.component.PageRequestTarget.respond(PageRequestTarget.java:59)
at org.apache.wicket.request.AbstractRequestCycleProcessor.respond(AbstractRequestCycleProcessor.java:103)
at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1037)
at org.apache.wicket.RequestCycle.step(RequestCycle.java:1107)
at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1176)
at org.apache.wicket.RequestCycle.request(RequestCycle.java:499)
at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:257)
at org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:126)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at sun.reflect.GeneratedMethodAccessor253.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:244)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:276)
at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:162)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:283)
at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:56)
at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:189)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:613)
This happens when loading a foundset from one form into another based on the same table. The weird thing is that I do exactly the same thing with the same foundset via a different route and it works fine - all the forms being used work OK in web client because there is at least one route that gets me there without errors. There is one ‘unknown source’ error in the above…
at sun.reflect.GeneratedMethodAccessor253.invoke(Unknown Source)
…don’t know if this gives anyone a clue as to what is going on?
The code to load the records is
var a = application.getMethodTriggerFormName();
var b = forms[a].controller.getTableName();
//store current record index in set
var n = forms[a].controller.getSelectedIndex();
var m = b+'_card';//target form
if (forms[m])
{
if (globals.popup_flag ==1) globals.closeAllFormDialogs();//close dialog before moving!
forms[m].controller.showRecords(forms[a].foundset);
forms[m].controller.setSelectedIndex(n);
}
else
{
application.beep();
plugins.dialogs.showErrorDialog( 'Form missing', 'There is no card form for this item!', 'OK')
}
(Although the code above refers to the form ‘contacts_card’ I am getting the same error for many other forms.)
At the same time I sometimes (not always) get multiple errors… ```
Shouldn’t happen that the trigger element names are empty, is this called in a script that is triggered by solution startup?
... but I can't see any un-named elements on any of the forms in question!
It all works fine in smart client!