You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Krys Malak (JIRA)" <ji...@apache.org> on 2014/11/24 13:22:12 UTC

[jira] [Created] (WICKET-5773) Removal of AjaxTimerBehavior throws InvalidBehaviorIdException

Krys Malak created WICKET-5773:
----------------------------------

             Summary: Removal of AjaxTimerBehavior throws InvalidBehaviorIdException
                 Key: WICKET-5773
                 URL: https://issues.apache.org/jira/browse/WICKET-5773
             Project: Wicket
          Issue Type: Bug
          Components: wicket
    Affects Versions: 6.18.0, 6.16.0
            Reporter: Krys Malak
         Attachments: myproject.zip

Under the following setup we get an exception in our project:

Component with an AbstractAjaxTimerBehavior with a simple Model. Two Links that change the model value and execute "ajaxRequestTarget.add" on this component. Depending on the model value the timerBehavior is added or removed to the component.

See the enclosed Quickstart: Step to reproduce in Application started in Debug. Breakpoint set in "onConfigure" of Comonent:

Click Link2. Timer Behavior is firing every second.
Click Link1. Hold on Breakpoint in "onConfigure" and let the application continue.
-> org.apache.wicket.behavior.InvalidBehaviorIdException

In rare cases, it is possible to reproduce this behavior without a breakpoint, but with the breakpoint it is reporduceable every time. I could not write a test (in debug or normal) that shows the same behavior.

Exception:
Last cause: Cannot find behavior with id '0' on component 'com.mycompany.HomePage$1:container' in page '[Page class = com.mycompany.HomePage, id = 0, render count = 1]'. Perhaps the behavior did not properly implement getStatelessHint() and returned 'true' to indicate that it is stateless instead of returning 'false' to indicate that it is stateful.

Stack:
Root cause:

org.apache.wicket.behavior.InvalidBehaviorIdException: Cannot find behavior with id '0' on component 'com.mycompany.HomePage$1:container' in page '[Page class = com.mycompany.HomePage, id = 0, render count = 1]'. Perhaps the behavior did not properly implement getStatelessHint() and returned 'true' to indicate that it is stateless instead of returning 'false' to indicate that it is stateful.
at org.apache.wicket.Behaviors.getBehaviorById(Behaviors.java:316)
at org.apache.wicket.Component.getBehaviorById(Component.java:4470)
at org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:249)
at org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:236)
at org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:862)
at org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
at org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:261)
at org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:218)
at org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:289)
at org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:259)
at org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:201)
at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:282)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1291)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:443)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:556)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1044)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:372)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:189)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:978)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
at org.eclipse.jetty.server.Server.handle(Server.java:369)
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:486)
at org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53)
at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:933)
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:995)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
at org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72)
at org.eclipse.jetty.server.bio.SocketConnector$ConnectorEndPoint.run(SocketConnector.java:264)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
at java.lang.Thread.run(Thread.java:724)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)