Explanation of Wicket session management
I am having a tough time understanding how sessions are created/managed specifically related to the calls public RequestCycle newRequestCycle(Request request, Response response) and public Session newSession(Request request, Response response) I am creating a new session by overriding the method newSession and doing something like public Session newSession(Request request, Response response) { .. Session session = new Session(request); return session; } This works fine. On subsequent calls, newSession isn't called as a session is already in place. This is working as expected. What isn't working is the call to Session.exists(), this is always returning false when its invoked in the method newRequestCycle which I override. public RequestCycle newRequestCycle(Request request, Response response) { if(Session.exists() certain condiition is met) { - The method Session.exists() is always returning false Session mySession = Session.get(); mySession.invalidateNow(); } } } Can someone explain why Session.exists() always returns false, and if the session truly doesn't exist why newSession isn't called after the first invocation - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Explanation of Wicket session management
Did you read the javadoc for Session#exists() ? http://wicket.sourceforge.net/apidocs/wicket/Session.html#exists() Checks if the Session threadlocal is set in this thread So not if the session was created or not. Martijn On 3/11/08, Rajiv Jivan [EMAIL PROTECTED] wrote: I am having a tough time understanding how sessions are created/managed specifically related to the calls public RequestCycle newRequestCycle(Request request, Response response) and public Session newSession(Request request, Response response) I am creating a new session by overriding the method newSession and doing something like public Session newSession(Request request, Response response) { .. Session session = new Session(request); return session; } This works fine. On subsequent calls, newSession isn't called as a session is already in place. This is working as expected. What isn't working is the call to Session.exists(), this is always returning false when its invoked in the method newRequestCycle which I override. public RequestCycle newRequestCycle(Request request, Response response) { if(Session.exists() certain condiition is met) { - The method Session.exists() is always returning false Session mySession = Session.get(); mySession.invalidateNow(); } } } Can someone explain why Session.exists() always returns false, and if the session truly doesn't exist why newSession isn't called after the first invocation - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Buy Wicket in Action: http://manning.com/dashorst Apache Wicket 1.3.1 is released Get it now: http://www.apache.org/dyn/closer.cgi/wicket/1.3.1 - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Explanation of Wicket session management
Yes I did. I was assuming that once newSession is called, on subsequent calls, the session will be set on a thread local variable. If that is not the case, what would be the right way to check if a session has been created. On Tue, Mar 11, 2008 at 10:32 AM, Martijn Dashorst [EMAIL PROTECTED] wrote: Did you read the javadoc for Session#exists() ? http://wicket.sourceforge.net/apidocs/wicket/Session.html#exists() Checks if the Session threadlocal is set in this thread So not if the session was created or not. Martijn On 3/11/08, Rajiv Jivan [EMAIL PROTECTED] wrote: I am having a tough time understanding how sessions are created/managed specifically related to the calls public RequestCycle newRequestCycle(Request request, Response response) and public Session newSession(Request request, Response response) I am creating a new session by overriding the method newSession and doing something like public Session newSession(Request request, Response response) { .. Session session = new Session(request); return session; } This works fine. On subsequent calls, newSession isn't called as a session is already in place. This is working as expected. What isn't working is the call to Session.exists(), this is always returning false when its invoked in the method newRequestCycle which I override. public RequestCycle newRequestCycle(Request request, Response response) { if(Session.exists() certain condiition is met) { - The method Session.exists() is always returning false Session mySession = Session.get(); mySession.invalidateNow(); } } } Can someone explain why Session.exists() always returns false, and if the session truly doesn't exist why newSession isn't called after the first invocation - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Buy Wicket in Action: http://manning.com/dashorst Apache Wicket 1.3.1 is released Get it now: http://www.apache.org/dyn/closer.cgi/wicket/1.3.1 - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Explanation of Wicket session management
RequestCycle is first made and the the Session is being resolved. Because the session creation code needs the request cycle first. So thats why your code doesn't work that test that you want should be done in Requestcycle.onBeginRequest On Tue, Mar 11, 2008 at 4:47 PM, Rajiv Jivan [EMAIL PROTECTED] wrote: Yes I did. I was assuming that once newSession is called, on subsequent calls, the session will be set on a thread local variable. If that is not the case, what would be the right way to check if a session has been created. On Tue, Mar 11, 2008 at 10:32 AM, Martijn Dashorst [EMAIL PROTECTED] wrote: Did you read the javadoc for Session#exists() ? http://wicket.sourceforge.net/apidocs/wicket/Session.html#exists() Checks if the Session threadlocal is set in this thread So not if the session was created or not. Martijn On 3/11/08, Rajiv Jivan [EMAIL PROTECTED] wrote: I am having a tough time understanding how sessions are created/managed specifically related to the calls public RequestCycle newRequestCycle(Request request, Response response) and public Session newSession(Request request, Response response) I am creating a new session by overriding the method newSession and doing something like public Session newSession(Request request, Response response) { .. Session session = new Session(request); return session; } This works fine. On subsequent calls, newSession isn't called as a session is already in place. This is working as expected. What isn't working is the call to Session.exists(), this is always returning false when its invoked in the method newRequestCycle which I override. public RequestCycle newRequestCycle(Request request, Response response) { if(Session.exists() certain condiition is met) { - The method Session.exists() is always returning false Session mySession = Session.get(); mySession.invalidateNow(); } } } Can someone explain why Session.exists() always returns false, and if the session truly doesn't exist why newSession isn't called after the first invocation - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Buy Wicket in Action: http://manning.com/dashorst Apache Wicket 1.3.1 is released Get it now: http://www.apache.org/dyn/closer.cgi/wicket/1.3.1 - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Explanation of Wicket session management
Yes that is true, Session is lazy created in Session.get() so only after the first time that is called Session.exists() works. I guess Session.exists() doesnt really make much sense On Tue, Mar 11, 2008 at 8:29 PM, Rajiv Jivan [EMAIL PROTECTED] wrote: I have updated the code based on Johan's suggestion. Still no luck. public Session newSession(Request request, Response response) { .. Session session = new Session(request); return session; } public RequestCycle newRequestCycle(Request request, Response response) { return new WebRequestCycle(this, request, response) { if(Session.exists() certain condiition is met) { - The method Session.exists() still returns false Session mySession = Session.get(); mySession.invalidateNow(); } }; } On Tue, Mar 11, 2008 at 12:02 PM, Johan Compagner [EMAIL PROTECTED] wrote: RequestCycle is first made and the the Session is being resolved. Because the session creation code needs the request cycle first. So thats why your code doesn't work that test that you want should be done in Requestcycle.onBeginRequest On Tue, Mar 11, 2008 at 4:47 PM, Rajiv Jivan [EMAIL PROTECTED] wrote: Yes I did. I was assuming that once newSession is called, on subsequent calls, the session will be set on a thread local variable. If that is not the case, what would be the right way to check if a session has been created. On Tue, Mar 11, 2008 at 10:32 AM, Martijn Dashorst [EMAIL PROTECTED] wrote: Did you read the javadoc for Session#exists() ? http://wicket.sourceforge.net/apidocs/wicket/Session.html#exists() Checks if the Session threadlocal is set in this thread So not if the session was created or not. Martijn On 3/11/08, Rajiv Jivan [EMAIL PROTECTED] wrote: I am having a tough time understanding how sessions are created/managed specifically related to the calls public RequestCycle newRequestCycle(Request request, Response response) and public Session newSession(Request request, Response response) I am creating a new session by overriding the method newSession and doing something like public Session newSession(Request request, Response response) { .. Session session = new Session(request); return session; } This works fine. On subsequent calls, newSession isn't called as a session is already in place. This is working as expected. What isn't working is the call to Session.exists(), this is always returning false when its invoked in the method newRequestCycle which I override. public RequestCycle newRequestCycle(Request request, Response response) { if(Session.exists() certain condiition is met) { - The method Session.exists() is always returning false Session mySession = Session.get(); mySession.invalidateNow(); } } } Can someone explain why Session.exists() always returns false, and if the session truly doesn't exist why newSession isn't called after the first invocation - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Buy Wicket in Action: http://manning.com/dashorst Apache Wicket 1.3.1 is released Get it now: http://www.apache.org/dyn/closer.cgi/wicket/1.3.1 - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]