I think I found a way to replicate the issue: I autodeploy my war file (e.g. 
copy updated war to webapps and let resin reload it). After a few deployments 
this issue will occur so maybe there is some corruption caused by autodeploy?

matt


On Aug 16, 2010, at 9:57 AM, Matthew Serrano wrote:

> 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

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

Reply via email to