I am not intentionally making the call from another thread but would this be 
the case if the server had restarted? Maybe there is some combination of the 
session expiring and the server restarting that causes some issue? The code is:
HttpSession mySession = req.getSession(false);
if (mySession != null) {
   UserBean userBean = (UserBean) 
mySession.getAttribute(com.ordinate.common.auth.UserBean.SESSION_KEY);
   if (userBean != null) {
      logger.debug("User is already logged in. Redirecting to welcome page.");
      redirect(req, res, successUrl);
   } else {
      redirect(req, res, errorUrl);
   }
}

The exception occurs on the cast of the user object (line 3) so I tried 
removing the cast which allows the code to process past this point. However, 
the application then threw the same error later in a JSP when I try to get the 
user object from the session using JSTL.

I have tried to replicate the issue by waiting for sessions to expire, 
restarting the server, deploying new apps (in multiple combinations)...so far I 
can't replicate it but it has now occurred on three separate servers (2 Debian 
64bit and 1 Mac OS X desktop). The only thing I am considering now is that a 
step before the above servlet executes, the session is invalidated and then 
immediately recreated using req.getSession(true). Is it possible this is 
randomly causing some issue?

Btw, this same code has been running for years on Resin Pro 3.0.25.

matt

On Aug 16, 2010, at 8:49 AM, Scott Ferguson wrote:

> Matthew Serrano wrote:
>> I am running resin 4.0.7 and I store a user object in the session using 
>> "User_Bean" as a key. Everything works fine most of the time but it seems 
>> when my session expires and I have not logged out, every subsequent call to 
>> get this object returns some HashMap instead of my object or null. Since I 
>> am casting the object when I retrieve it from the session the message I get 
>> is:
>> 
>> java.lang.ClassCastException: java.util.HashMap cannot be cast to 
>> com.ordinate.ppass.beans.UserBean
>> 
>> Is there some reason why getting an object from the session would return a 
>> Map instead of the object? Is "User_Bean" some reserved word or something? 
>> The only way I have been able to get my application working again is to 
>> shutdown the server, delete everything in the resin-data folder and restart 
>> (deleting the exploded war, deploying the app again, restarting all do not 
>> work).
>> 
> Is the session get/put in the normal request context? As opposed to 
> being read from some other thread or a different context class loader?
> 
> That behavior sounds like it might be caused by a getAttribute call from 
> outside the web-app's context. In other words, if Resin can't find the 
> UserBean class when its deserializing. Is that at all possible in your 
> application?
> 
> -- Scott
>> Also, this seems to happen on resin 4.0.9 as well.
>> 
>> thanks
>> matt
>> 
>> _______________________________________________
>> resin-interest mailing list
>> resin-interest@caucho.com
>> http://maillist.caucho.com/mailman/listinfo/resin-interest
>> 
>> 
> 
> 
> 
> _______________________________________________
> resin-interest mailing list
> resin-interest@caucho.com
> http://maillist.caucho.com/mailman/listinfo/resin-interest

_______________________________________________
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest

Reply via email to