In the meantime, I am using the following workaround: lazy init the
desired CustomRequestCycle member.
e.g
Instead of
@Override
protected void onBeginRequest() {
super.onBeginRequest();
Long userId = CustomSession.get().getCurrentUserId();
if (userId != null)
currentUserModel = // fetch user
}
and a simple getCurrentUserModel(), I use
public DetachableUserModel getCurrentUserModel() {
if (currentUserModel == null) {
Long userId = CustomSession.get().getCurrentUserId();
if (userId != null)
currentUserModel = // fetch user
}
return currentUserModel;
}
On 10/02/2011 2:41 PM, Igor Vaynberg wrote:
no i do not. there are still a lot of reported bugs that need to be
fixed before we release it. you can always use a snapshot or run a
build yourself if you need it now.
-igor
On Thu, Feb 10, 2011 at 11:31 AM, Zhubin Salehi
<[email protected]> wrote:
I had the same issue. Do you have any estimate on the release date of RC2?
Zhubin
-----Original Message-----
From: Igor Vaynberg [mailto:[email protected]]
Sent: February 10, 2011 1:54 PM
To: [email protected]
Subject: Re: Wicket 1.5 and custom request cycle
i just fixed this last night, will be part of rc2.
-igor
On Thu, Feb 10, 2011 at 10:46 AM, Bertrand Guay-Paquet
<[email protected]> wrote:
Hello,
Disclaimer: I am a relatively new Wicket user
I use a custom session to store the current user Id and I want to use the
request cycle to store the current user object which is fetched from the DB
on each request following advice from
http://wicket-users.markmail.org/search/?q=cart+thread+safe#query:cart%20thread%20safe+page:1+mid:m3kgdjxv2fmeebvt+state:results
and
http://wicket-users.markmail.org/search/?q=session+thread+safe#query:session%20thread%20safe+page:1+mid:oh4v4ivhubc3ao4s+state:results
To this end, I followed the instructions from
https://cwiki.apache.org/WICKET/migration-to-wicket-15.html#MigrationtoWicket1.5-RequestCycle
However, the method WebApplication#addRequestCycleListener() does not exist.
I searched for a replacement but only found
Application#getRequestCycleListeners() which gives access to the listener
list. Its Javadoc however states that the returned list is unmodifiable so I
avoided this route.
So instead I used Application#setRequestCycleProvider() to create my
CustomRequestCycle class. This class has the following method:
@Override
protected void onBeginRequest() {
super.onBeginRequest();
Long userId = (CustomSession)Session.get().getCurrentUserId();
if (userId != null)
// fetch user...
}
My problem is that I get a NullPointerException in Session#get(). When first
accessing a page, there is no session associated with the TheadContext. So
the following line is then executed in Session#get():
Application.get().fetchCreateAndSetSession(RequestCycle.get())
RequestCycle.get() returns null because ThreadContext.requestCycle has not
been set yet when onBeginRequest() is called.
I am doing something wrong? Is this a bug?
Thanks!
---------------------------------------------------------------------
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]
---------------------------------------------------------------------
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]