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 2003/02/11 12:54:12 UTC

cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session FileStore.java JDBCStore.java ManagerBase.java PersistentManagerBase.java StandardSession.java

jfclere     2003/02/11 03:54:12

  Modified:    catalina/src/share/org/apache/catalina Manager.java
               catalina/src/share/org/apache/catalina/session
                        FileStore.java JDBCStore.java ManagerBase.java
                        PersistentManagerBase.java StandardSession.java
  Log:
  Correct problems related to the persistence of sessions:
  
  Revision  Changes    Path
  1.9       +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.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- Manager.java	9 Dec 2002 15:05:55 -0000	1.8
  +++ Manager.java	11 Feb 2003 11:54:12 -0000	1.9
  @@ -175,6 +175,12 @@
        */
       public void add(Session 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();
   
       /**
        * Add a property change listener to this component.
  
  
  
  1.11      +6 -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.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- FileStore.java	9 Dec 2002 15:05:55 -0000	1.10
  +++ FileStore.java	11 Feb 2003 11:54:12 -0000	1.11
  @@ -333,7 +333,7 @@
   
           try {
               StandardSession session =
  -                (StandardSession) manager.createSession();
  +                (StandardSession) manager.createEmptySession();
               session.readObjectData(ois);
               session.setManager(manager);
               return (session);
  @@ -385,6 +385,7 @@
       public void save(Session session) throws IOException {
   
           // Open an output stream to the specified pathname, if any
  +        System.out.println("save: " + session.getId());
           File file = file(session.getId());
           if (file == null) {
               return;
  
  
  
  1.9       +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.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- JDBCStore.java	9 Dec 2002 15:05:55 -0000	1.8
  +++ JDBCStore.java	11 Feb 2003 11:54:12 -0000	1.9
  @@ -538,7 +538,7 @@
   
           if(ois != null) {
               try {
  -                _session = (StandardSession) manager.createSession();
  +                _session = (StandardSession) manager.createEmptySession();
                   _session.readObjectData(ois);
                   _session.setManager(manager);
               } finally {
  
  
  
  1.19      +27 -16    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.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- ManagerBase.java	6 Feb 2003 23:01:41 -0000	1.18
  +++ ManagerBase.java	11 Feb 2003 11:54:12 -0000	1.19
  @@ -574,18 +574,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);
  @@ -615,6 +604,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.13      +6 -5      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.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- PersistentManagerBase.java	9 Dec 2002 15:05:55 -0000	1.12
  +++ PersistentManagerBase.java	11 Feb 2003 11:54:12 -0000	1.13
  @@ -733,7 +733,8 @@
               log(sm.getString("persistentManager.swapIn", id));
   
           session.setManager(this);
  -        session.setId(id); // To make sure the listener knows about it.
  +        // To make sure the listener knows about it.
  +        ((StandardSession)session).tellNew();
           add(session);
           ((StandardSession)session).activate();
   
  
  
  
  1.35      +11 -4     jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/StandardSession.java
  
  Index: StandardSession.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/StandardSession.java,v
  retrieving revision 1.34
  retrieving revision 1.35
  diff -u -r1.34 -r1.35
  --- StandardSession.java	10 Feb 2003 09:59:31 -0000	1.34
  +++ StandardSession.java	11 Feb 2003 11:54:12 -0000	1.35
  @@ -373,6 +373,13 @@
   
           if (manager != null)
               manager.add(this);
  +        tellNew();
  +    }
  +    /**
  +     * Inform the listener about the new session.
  +     *
  +     */
  +    public void tellNew() {
   
           // Notify interested session event listeners
           fireSessionEvent(Session.SESSION_CREATED_EVENT, null);
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org