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>