Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
7.0.0-M4
-
None
-
None
Description
Steps to reproduce:
- Create a component extending FormComponentPanel and use a wicket:enclosure in it
- Create a component "MyTab" extending Panel with a form which includes component above
- In your page, add an AjaxTabbedPanel with two tabs and add "MyTab" twice
When changing tabs the exception shown below is thrown.
The problem occurs with both 7.0.0-M4 and 7.0.0-SNAPSHOT
I am also attaching a quickstart to reproduce the problem.
org.apache.wicket.WicketRuntimeException: Detach called on component with id 'component' while it had a non-empty queue: ComponentQueue
{queueSize=1, queue=[[Enclosure [Component id = wicket_enclosure0]], null, null, null, null, null, null, null]} at org.apache.wicket.MarkupContainer.onDetach(MarkupContainer.java:1936)
at org.apache.wicket.markup.html.form.LabeledWebMarkupContainer.onDetach(LabeledWebMarkupContainer.java:46)
at org.apache.wicket.markup.html.form.FormComponent.onDetach(FormComponent.java:1409)
at org.apache.wicket.Component.detach(Component.java:1162)
at org.apache.wicket.MarkupContainer.detachChildren(MarkupContainer.java:1653)
at org.apache.wicket.Component.detach(Component.java:1186)
at org.apache.wicket.MarkupContainer.detachChildren(MarkupContainer.java:1653)
at org.apache.wicket.Component.detach(Component.java:1186)
at org.apache.wicket.MarkupContainer.removedComponent(MarkupContainer.java:1355)
at org.apache.wicket.MarkupContainer.replace(MarkupContainer.java:742)
at org.apache.wicket.MarkupContainer.addOrReplace(MarkupContainer.java:214)
at org.apache.wicket.extensions.markup.html.tabs.TabbedPanel.setCurrentTab(TabbedPanel.java:439)
at org.apache.wicket.extensions.markup.html.tabs.TabbedPanel.setSelectedTab(TabbedPanel.java:397)
at org.apache.wicket.extensions.ajax.markup.html.tabs.AjaxTabbedPanel$1.onClick(AjaxTabbedPanel.java:81)
at org.apache.wicket.ajax.markup.html.AjaxFallbackLink$1.onEvent(AjaxFallbackLink.java:90)
at org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:156)
at org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:575)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:258)
at org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:241)
at org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:248)
at org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:234)
at org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:837)
at org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
at org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:265)
at org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:222)
at org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293)
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:1125)
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:1059)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
at org.eclipse.jetty.server.Server.handle(Server.java:497)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:313)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:248)
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:626)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:546)
at java.lang.Thread.run(Thread.java:745)