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]>

Reply via email to