You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by jf...@apache.org on 2002/11/30 13:43:14 UTC
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session FileStore.java JDBCStore.java ManagerBase.java PersistentManagerBase.java
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: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>