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)