You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Piotr Marnik (JIRA)" <ji...@apache.org> on 2010/06/22 12:22:55 UTC

[jira] Commented: (WICKET-2902) WicketSessionFilter still broken: you can only locate or create sessions in the context of a request cycle

    [ https://issues.apache.org/jira/browse/WICKET-2902?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12881157#action_12881157 ] 

Piotr Marnik commented on WICKET-2902:
--------------------------------------

I think, that this issue is caused by not binded wicket session to thread local object. Below I propose following patch wich was fix this issue for me:
{code}
--- WicketSessionFilter.java    2010-06-22 11:43:05.000000000 +0200
+++ WicketSessionFilter.java    2010-06-22 12:11:43.000000000 +0200
@@ -186,6 +186,7 @@
                else
                {
                        session.bind();
+                       Session.set(session);
                }
        }

{code}

> WicketSessionFilter still broken: you can only locate or create sessions in the context of a request cycle
> ----------------------------------------------------------------------------------------------------------
>
>                 Key: WICKET-2902
>                 URL: https://issues.apache.org/jira/browse/WICKET-2902
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.4.9
>            Reporter: Maarten Billemont
>            Priority: Critical
>
> Ever since 1.4.8 (see WICKET-2778 and WICKET-2858) WicketSessionFilter has been broken for me.  This basically breaks my wicket application completely as I rely on servlets being able to access my wicket session.  For that reason, I think Critical or Blocker is a fair priority for this issue.
> In 1.4.9 I get the following while reverting to 1.4.7 it works as expected:
> {code}
> java.lang.IllegalStateException: you can only locate or create sessions in the context of a request cycle
>         at org.apache.wicket.Session.findOrCreate(Session.java:208)
>         at org.apache.wicket.Session.get(Session.java:252)
>         at com.lyndir.lhunath.snaplog.webapp.SnaplogSession.get(SnaplogSession.java:78)
>         at com.lyndir.lhunath.snaplog.webapp.servlet.ImageServlet.doGet(ImageServlet.java:117)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
>         at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:216)
>         at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:141)
>         at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:93)
>         at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:63)
>         at org.apache.wicket.protocol.http.servlet.WicketSessionFilter.doFilter(WicketSessionFilter.java:150)
>         at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:129)
>         at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:59)
>         at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:363)
>         at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:129)
>         at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:59)
>         at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:122)
>         at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:110)
>         at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1139)
>         at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:378)
>         at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>         at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
>         at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
>         at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417)
>         at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
>         at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
>         at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
>         at org.mortbay.jetty.Server.handle(Server.java:324)
>         at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:535)
>         at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:865)
>         at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539)
>         at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
>         at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
>         at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
>         at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)
> {code}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.