I'm looking for some feedback on a working solution I've implemented that feels a bit clunky.
The basic requirement was to remove stale entries from a simple locking mechanisim if the user had logged off or timed out.
My solution (after a few suggestions from the websphere usenet group) was to implement a session binding listener and add one of these objects to each users session as they log in. (I use a global filter to test each request to ensure the users session contains a listener.)
The listener class has a static hashmap that stores a list of all logged on users. As bind and unbind events are fired the relevant user is added or removed from the list. A public method returns the current 'active' user list which we use to verify our lock entries.
Has anyone else tackled this kind of problem before?