Hi all,
 
I want to use Redis as a backing for my sessions. I’ve seen
https://github.com/Ovea/jetty-session-redis, but the five years since any commit doesn’t inspire much confidence. I’ve also seen
https://dev.eclipse.org/mhonarc/lists/jetty-dev/msg02086.html, but was unable to find the fruits of Denis’ labour.
 
So I’m currently making a NoSqlSessionManager extension based on Redis. For this I’m looking at the Mongo implementation and trying to stay close to it. Doing
 that I struck some code I don’t understand. Hopefully somebody here can enlighten me?
 
In org.eclipse.jetty.nosql.mongodb.MongoSessionManager.refresh(NoSqlSession, Object), which as I understand exists to update a session in memory from a session
 on disk, session.doPutOrRemove(attr,value) is called (l. 406). If the manager’s savePeriod is -2, that results in a org.eclipse.jetty.nosql.NoSqlSession.save(boolean), which is used to update a session on disk from memory. This does not look right to me, but
 I might (very well) be mistaken. Any clues?
 
A little further on in the same method (l. 420) this sequence is called:
                        session.doPutOrRemove(str,null);
                        session.unbindValue(str,session.getAttribute(str));
I think the second call is equivalent to session.unbindValue(str, session.getAttribute(str));, but I’m not sure that that is what the authors meant. Can I do
 that or should it be:
                        Object o = session.getAttribute(str);
                        session.doPutOrRemove(str,null); // might also result in a save
                        session.unbindValue(str,o);
 
Any help is appreciated,
 
Groeten,
 
Friso