Hi

 

I have a pretty simple program with a border (as described on wiki: How to create consistent page layouts using Borders). On one page there is a button that makes the server calculate some stuff and just stay on the page to display the results. After upgrading to HEAD version, I am getting this error:

 

wicket.WicketRuntimeException: If the root exception says something like "A child with id '_header' already exists"than you most likely forgot to override autoAdd() in your bordered page component.
    at wicket.markup.html.HtmlHeaderResolver.resolve(HtmlHeaderResolver.java:82)
    at wicket.MarkupContainer.renderNext(MarkupContainer.java:886)
    at wicket.MarkupContainer.renderAll(MarkupContainer.java:780)
    at wicket.Page.onRender(Page.java:742)
    at wicket.Component.render(Component.java:1074)
    at wicket.Page.doRender(Page.java:480)
    at wicket.protocol.http.WebRequestCycle.redirectTo(WebRequestCycle.java:207)
    at wicket.RequestCycle.respond(RequestCycle.java:771)
    at wicket.RequestCycle.request(RequestCycle.java:406)
    at wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:265)
    at wicket.protocol.http.WicketServlet.doPost(WicketServlet.java:289)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:358)
    at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:294)
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:567)
    at org.mortbay.http.HttpContext.handle(HttpContext.java:1807)
    at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:525)
    at org.mortbay.http.HttpContext.handle(HttpContext.java:1757)
    at org.mortbay.http.HttpServer.service(HttpServer.java:879)
    at org.mortbay.http.HttpConnection.service(HttpConnection.java:789)
    at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:960)
    at org.mortbay.http.HttpConnection.handle(HttpConnection.java:806)
    at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:218)
    at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:300)
    at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:511)
Caused by: java.lang.IllegalArgumentException: A child with id '_header' already exists:
[MarkupContainer [Component id = border, page = com.jatak.webtools.web.gui.MemberPage, path = 3:border.SimpleBorder, isVisible = true, isVersioned = true]]
    at wicket.MarkupContainer.add(MarkupContainer.java:138)
    at com.jatak.webtools.web.gui.SimpleBorderedPage.add(SimpleBorderedPage.java:46)
    at wicket.MarkupContainer.autoAdd(MarkupContainer.java:181)
    at wicket.markup.html.HtmlHeaderResolver.resolve(HtmlHeaderResolver.java:78)

 

Do I need to override autoAdd() somewhere? If so, where and how?

 

I tried the “re-use strategy” in MarkupContainer, but with the same results.

 

Regards,

Jan Mikkelsen

Reply via email to