[ https://issues.apache.org/jira/browse/WICKET-6374?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andrea Del Bene reassigned WICKET-6374: --------------------------------------- Assignee: Andrea Del Bene > Exception caused by border extending another border with <wicket:extend> > ------------------------------------------------------------------------ > > Key: WICKET-6374 > URL: https://issues.apache.org/jira/browse/WICKET-6374 > Project: Wicket > Issue Type: Bug > Components: wicket > Affects Versions: 7.7.0, 8.0.0-M5 > Reporter: Erik Wienhold > Assignee: Andrea Del Bene > Attachments: myproject.tar.gz > > > Border components extended from a custom border component with > {{<wicket:extend>}} fail to render in 7.7.0 (see stacktrace) and 8.0.0-M5. It > renders fine with 7.6.0. The upgrade to 7.7.0 is necessary to get the fix for > https://issues.apache.org/jira/browse/WICKET-6303. > {noformat} > org.apache.wicket.WicketRuntimeException: An error occurred while detaching > component: [MyExtendedBorder [Component id = border, page = > com.mycompany.HomePage, path = border, type = com.mycompany.MyExtendedBorder, > isVisible = true, isVersioned = true, markup = [markup = > file:/home/janedoe/myproject/target/classes/com/mycompany/HomePage.html > <div wicket:id="border">[body]</div>, index = 0, current = '<div > wicket:id="border">' (line 0, column 0)]], children = [BorderBodyContainer > [Component id = border_body]]] > at org.apache.wicket.Component.detach(Component.java:1182) > at > org.apache.wicket.MarkupContainer.detachChildren(MarkupContainer.java:1761) > at org.apache.wicket.Component.detach(Component.java:1187) > at > org.apache.wicket.core.request.handler.PageProvider.detach(PageProvider.java:330) > at > org.apache.wicket.core.request.handler.RenderPageRequestHandler.detach(RenderPageRequestHandler.java:156) > at > org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.detach(RequestCycle.java:906) > at > org.apache.wicket.request.RequestHandlerStack.detach(RequestHandlerStack.java:180) > at > org.apache.wicket.request.cycle.RequestCycle.onDetach(RequestCycle.java:641) > at > org.apache.wicket.request.cycle.RequestCycle.detach(RequestCycle.java:594) > at > org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:297) > at > org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261) > at > org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:203) > at > org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:284) > at > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) > at > org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585) > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) > at > org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577) > at > org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) > at > org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) > at > org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) > at > org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) > at > org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) > at > org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) > at org.eclipse.jetty.server.Server.handle(Server.java:499) > at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311) > at > org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257) > at > org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544) > at > org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) > at > org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) > at java.lang.Thread.run(Thread.java:745) > Caused by: org.apache.wicket.WicketRuntimeException: Detach called on > component with id 'border' while it had a non-empty queue: > ComponentQueue{queueSize=1, queue=[[BorderBodyContainer [Component id = > border_body]], null, null, null, null, null, null, null]} > at org.apache.wicket.MarkupContainer.onDetach(MarkupContainer.java:1943) > at org.apache.wicket.Component.detach(Component.java:1163) > ... 30 more > Caused by: > org.apache.wicket.WicketRuntimeException: Detach called on component with id > 'border' while it had a non-empty queue: ComponentQueue{queueSize=2, > queue=[[BorderBodyContainer [Component id = border_body]], null, null, null, > null, null, null, null]} > at org.apache.wicket.MarkupContainer.onDetach(MarkupContainer.java:1943) > at org.apache.wicket.Component.detach(Component.java:1163) > at > org.apache.wicket.MarkupContainer.detachChildren(MarkupContainer.java:1761) > at org.apache.wicket.Component.detach(Component.java:1187) > at > org.apache.wicket.core.request.handler.PageProvider.detach(PageProvider.java:330) > at > org.apache.wicket.core.request.handler.RenderPageRequestHandler.detach(RenderPageRequestHandler.java:156) > at > org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.detach(RequestCycle.java:906) > at > org.apache.wicket.request.RequestHandlerStack.detach(RequestHandlerStack.java:180) > at > org.apache.wicket.request.cycle.RequestCycle.onDetach(RequestCycle.java:641) > at > org.apache.wicket.request.cycle.RequestCycle.detach(RequestCycle.java:594) > at > org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:297) > at > org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261) > at > org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:203) > at > org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:284) > at > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) > at > org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585) > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) > at > org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577) > at > org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) > at > org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) > at > org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) > at > org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) > at > org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) > at > org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) > at org.eclipse.jetty.server.Server.handle(Server.java:499) > at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311) > at > org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257) > at > org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544) > at > org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) > at > org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) > at java.lang.Thread.run(Thread.java:745) > {noformat} > The class hierarchy is as follows: > {code:java} > class MyBorder extends Border > class MyExtendedBorder extends MyBorder > {code} > {{MyBorder}} uses {{<wicket:border>}} and includes {{<wicket:body/>}} and > {{<wicket:child/>}}. {{MyExtendedBorder}} uses {{<wicket:extend>}} and is > used on the page. -- This message was sent by Atlassian JIRA (v6.3.15#6346)