[ 
https://issues.apache.org/jira/browse/WICKET-6022?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sven Meier resolved WICKET-6022.
--------------------------------
    Resolution: Invalid

There's nothing Wicket can do about your setup:

Different Ajax channels are completely separate: Two requests could be fired 
simultaneously so that the second reaches the page when the component is no 
longer present in the component tree.

As Martin has written, you should use custom channels only for special cases 
where race conditions can not occur.

Please ask on the mailing list for possible solutions to your original problem, 
i.e. how to work with long running tasks.

> ComponentNotFoundException using AbstractAjaxTimerBehavior and different 
> AjaxChanels
> ------------------------------------------------------------------------------------
>
>                 Key: WICKET-6022
>                 URL: https://issues.apache.org/jira/browse/WICKET-6022
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 6.20.0
>            Reporter: Paul
>            Assignee: Sven Meier
>            Priority: Minor
>         Attachments: quickstart.zip
>
>
> I've got the following problem:
> I use several Ajax-Channels for my Project. When an AbstractAjaxTimerBehavior 
> is attached to a element which is later removed via Ajax, I get a little 
> later a RuntimeException, as the Timer is still active, but has no Component 
> left attached to the page.
> I attached a Quickstart demonstrating this problem. If you leave the 
> AjaxChannel as it is, you won't have the problem, as the timers are stopped 
> upon removal of the component the timer is attached to. But if the name of 
> the channel differs from the default value, this problem occurs.
> Cheers
> Paul
> {quote}
> Stacktrace:
> Root cause:
> org.apache.wicket.core.request.handler.ComponentNotFoundException: Component 
> 'panel:timer' has been removed from page.
>      at 
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:178)
>      at 
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:890)
>      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(Unknown Source)
> {quote}



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

Reply via email to