jfclere 2002/11/30 04:43:14 Modified: catalina/src/share/org/apache/catalina Manager.java catalina/src/share/org/apache/catalina/session FileStore.java JDBCStore.java ManagerBase.java PersistentManagerBase.java Log: Add createEmptySession to Manager to improve the PersistentManager logics. Revision Changes Path 1.7 +10 -4 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/Manager.java Index: Manager.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/Manager.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- Manager.java 19 Sep 2002 22:55:47 -0000 1.6 +++ Manager.java 30 Nov 2002 12:43:14 -0000 1.7 @@ -183,6 +183,12 @@ */ public void addPropertyChangeListener(PropertyChangeListener listener); + /** + * Get a session from the recycled ones or create a new empty one. + * The PersistentManager manager does not need to create session data + * because it reads it from the Store. + */ + public Session createEmptySession(); /** * Construct and return a new session object, based on the default 1.9 +5 -5 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/FileStore.java Index: FileStore.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/FileStore.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- FileStore.java 19 Nov 2002 16:21:16 -0000 1.8 +++ FileStore.java 30 Nov 2002 12:43:14 -0000 1.9 @@ -333,7 +333,7 @@ try { StandardSession session = - (StandardSession) manager.createSession(); + (StandardSession) manager.createEmptySession(); session.readObjectData(ois); session.setManager(manager); return (session); 1.7 +5 -5 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/JDBCStore.java Index: JDBCStore.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/JDBCStore.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- JDBCStore.java 20 Sep 2002 14:05:14 -0000 1.6 +++ JDBCStore.java 30 Nov 2002 12:43:14 -0000 1.7 @@ -538,7 +538,7 @@ if(ois != null) { try { - _session = (StandardSession) manager.createSession(); + _session = (StandardSession) manager.createEmptySession(); _session.readObjectData(ois); _session.setManager(manager); } finally { 1.13 +27 -17 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/ManagerBase.java Index: ManagerBase.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/ManagerBase.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- ManagerBase.java 19 Sep 2002 22:55:48 -0000 1.12 +++ ManagerBase.java 30 Nov 2002 12:43:14 -0000 1.13 @@ -560,18 +560,7 @@ public Session createSession() { // Recycle or create a Session instance - Session session = null; - synchronized (recycled) { - int size = recycled.size(); - if (size > 0) { - session = (Session) recycled.get(size - 1); - recycled.remove(size - 1); - } - } - if (session != null) - session.setManager(this); - else - session = new StandardSession(this); + Session session = createEmptySession(); // Initialize the properties of the new session and return it session.setNew(true); @@ -583,7 +572,6 @@ // @todo Move appending of jvmRoute generateSessionId()??? if (jvmRoute != null) { sessionId += '.' + jvmRoute; - session.setId(sessionId); } /* synchronized (sessions) { @@ -595,6 +583,28 @@ return (session); + } + + + /** + * Get a session from the recycled ones or create a new empty one. + * The PersistentManager manager does not need to create session data + * because it reads it from the Store. + */ + public Session createEmptySession() { + Session session = null; + synchronized (recycled) { + int size = recycled.size(); + if (size > 0) { + session = (Session) recycled.get(size - 1); + recycled.remove(size - 1); + } + } + if (session != null) + session.setManager(this); + else + session = new StandardSession(this); + return(session); } 1.11 +5 -4 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/PersistentManagerBase.java Index: PersistentManagerBase.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/PersistentManagerBase.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- PersistentManagerBase.java 26 Nov 2002 17:20:06 -0000 1.10 +++ PersistentManagerBase.java 30 Nov 2002 12:43:14 -0000 1.11 @@ -742,6 +742,7 @@ log(sm.getString("persistentManager.swapIn", id)); session.setManager(this); + session.setId(id); // To make sure the listener knows about it. add(session); ((StandardSession)session).activate();
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>