Uploaded image for project: 'Wicket'
  1. Wicket
  2. WICKET-5800

wicket:enclosure within FormComponentPanel causes exception related to dequeueing

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 7.0.0-M4
    • Fix Version/s: 7.0.0-M5
    • Component/s: None
    • Labels:
      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)

        Attachments

        1. dequeue2.zip
          27 kB
          Marios Skounakis

          Activity

            People

            • Assignee:
              bitstorm Andrea Del Bene
              Reporter:
              mscoon Marios Skounakis
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: