Author: rjung
Date: Wed Nov 26 20:55:43 2014
New Revision: 1641934

URL: http://svn.apache.org/r1641934
Log:
Sync with TC 6, more use of super class.

Modified:
    
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/DeltaSession.java

Modified: 
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/DeltaSession.java
URL: 
http://svn.apache.org/viewvc/tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/DeltaSession.java?rev=1641934&r1=1641933&r2=1641934&view=diff
==============================================================================
--- 
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/DeltaSession.java
 (original)
+++ 
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/DeltaSession.java
 Wed Nov 26 20:55:43 2014
@@ -335,113 +335,25 @@ public class DeltaSession extends Standa
     }
 
     public void expire(boolean notify, boolean notifyCluster) {
-        String expiredId = getIdInternal();
-        // Check to see if expire is in progress or has previously been called
-        if (expiring || !isValid)
+        if (expiring)
             return;
+        String expiredId = getIdInternal();
 
-        synchronized (this) {
-            // Check again, now we are inside the sync so this code only runs 
once
-            // Double check locking - expiring and isValid need to be volatile
-            if (expiring || !isValid)
-                return;
-
-            if (manager == null)
-                return;
-
-
-            if(notifyCluster && expiredId != null && manager != null &&
-                manager instanceof DeltaManager) {
-                DeltaManager dmanager = (DeltaManager)manager;
-                CatalinaCluster cluster = dmanager.getCluster();
-                ClusterMessage msg = dmanager.requestCompleted(expiredId, 
true);
-                if (msg != null) {
-                    if(dmanager.isSendClusterDomainOnly()) {
-                        cluster.sendClusterDomain(msg);
-                    } else {
-                        cluster.send(msg);
-                    }
-                }
-            }
-
-            // Mark this session as "being expired"
-            expiring = true;
-
-            // Notify interested application event listeners
-            // FIXME - Assumes we call listeners in reverse order
-            Context context = (Context) manager.getContainer();
-            Object listeners[] = context.getApplicationLifecycleListeners();
-            if (notify && (listeners != null)) {
-                HttpSessionEvent event =
-                    new HttpSessionEvent(getSession());
-                for (int i = 0; i < listeners.length; i++) {
-                    int j = (listeners.length - 1) - i;
-                    if (!(listeners[j] instanceof HttpSessionListener))
-                        continue;
-                    HttpSessionListener listener =
-                        (HttpSessionListener) listeners[j];
-                    try {
-                        fireContainerEvent(context,
-                                           "beforeSessionDestroyed",
-                                           listener);
-                        listener.sessionDestroyed(event);
-                        fireContainerEvent(context,
-                                           "afterSessionDestroyed",
-                                           listener);
-                    } catch (Throwable t) {
-                        try {
-                            fireContainerEvent(context,
-                                               "afterSessionDestroyed",
-                                               listener);
-                        } catch (Exception e) {
-                            ;
-                        }
-                        manager.getContainer().getLogger().error
-                            (sm.getString("standardSession.sessionEvent"), t);
-                    }
-                }
-            }
-            if (ACTIVITY_CHECK) {
-                accessCount.set(0);
-            }
-            setValid(false);
-
-            /*
-             * Compute how long this session has been alive, and update
-             * session manager's related properties accordingly
-             */
-            long timeNow = System.currentTimeMillis();
-            int timeAlive = (int) ((timeNow - creationTime)/1000);
-            synchronized (manager) {
-                if (timeAlive > manager.getSessionMaxAliveTime()) {
-                    manager.setSessionMaxAliveTime(timeAlive);
+        if(notifyCluster && expiredId != null && manager != null &&
+           manager instanceof DeltaManager) {
+            DeltaManager dmanager = (DeltaManager)manager;
+            CatalinaCluster cluster = dmanager.getCluster();
+            ClusterMessage msg = dmanager.requestCompleted(expiredId, true);
+            if (msg != null) {
+                if(dmanager.isSendClusterDomainOnly()) {
+                    cluster.sendClusterDomain(msg);
+                } else {
+                    cluster.send(msg);
                 }
-                int numExpired = manager.getExpiredSessions();
-                numExpired++;
-                manager.setExpiredSessions(numExpired);
-                int average = manager.getSessionAverageAliveTime();
-                average = ((average * (numExpired-1)) + timeAlive)/numExpired;
-                manager.setSessionAverageAliveTime(average);
-            }
-
-            // Remove this session from our manager's active sessions
-            manager.remove(this);
-
-            // Notify interested session event listeners
-            if (notify) {
-                fireSessionEvent(Session.SESSION_DESTROYED_EVENT, null);
             }
-
-            // We have completed expire of this session
-            expiring = false;
-
-            // Unbind any objects associated with this session
-            String keys[] = keys();
-            for (int i = 0; i < keys.length; i++)
-                removeAttributeInternal(keys[i], notify);
-
         }
 
+        super.expire(notify);
 
         if (notifyCluster) {
             if (log.isDebugEnabled())



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

Reply via email to