Any ideas how a session attribute could go missing ?
MyObject myOb = session.getAttribute("myAttribute");
//print out session.getAttributeNames()
the second line of code above throws a null pointer, and when printing all the attributes in the session "myAttribute" does not exist. yet it has been definatly been set and no-where in the code is "removeAttribute()" used.
It's tough to answer this without seeing the code. Could you being setting in one session and getting in another? Your attribute name is hard-coded. Could there be a spelling mistake? (Case matters. Also use a constant rather than hard-coding) When setting, could you be setting the attribute to null? How do you know the setting "definitely worked"? Does it work sometimes but not others? If so, in what situations does it work and not work? Did it previously work but now doesn't? If so what changed to make it not work?
Joined: May 29, 2009
thanks for the help tom. I cannot provide sample code because its a massive app. there are numerous places it's being set and got. Its a tough one as I dont know what actions the user is making to cause this.
How are you setting the Attribute? Are there any calls to invalidate? What does getMaxInactiveInterval() give?
Joined: Jun 01, 2010
Mark Wa wrote:thanks for the help tom. I cannot provide sample code because its a massive app. there are numerous places it's being set and got. Its a tough one as I dont know what actions the user is making to cause this.
In that case I would add logging to the code to record user-generated events.