Author: kfujino
Date: Mon Apr 19 10:07:16 2010
New Revision: 935509

URL: http://svn.apache.org/viewvc?rev=935509&view=rev
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=49150

Modified:
    tomcat/trunk/java/org/apache/catalina/ha/session/BackupManager.java

Modified: tomcat/trunk/java/org/apache/catalina/ha/session/BackupManager.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/session/BackupManager.java?rev=935509&r1=935508&r2=935509&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/ha/session/BackupManager.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/ha/session/BackupManager.java Mon Apr 
19 10:07:16 2010
@@ -21,6 +21,7 @@ import java.io.IOException;
 import java.util.Iterator;
 
 import org.apache.catalina.LifecycleException;
+import org.apache.catalina.LifecycleState;
 import org.apache.catalina.Session;
 import org.apache.catalina.ha.CatalinaCluster;
 import org.apache.catalina.ha.ClusterManager;
@@ -198,6 +199,11 @@ public class BackupManager extends Stand
      */
     @Override
     protected synchronized void startInternal() throws LifecycleException {
+        
+        if (!initialized) init();
+
+        // Force initialization of the random number generator
+        generateSessionId();
 
         try {
             cluster.registerManager(this);
@@ -213,8 +219,7 @@ public class BackupManager extends Stand
             log.error("Unable to start BackupManager",x);
             throw new LifecycleException("Failed to start BackupManager",x);
         }
-
-        super.startInternal();
+        setState(LifecycleState.STARTING);
     }
     
     public String getMapName() {
@@ -238,14 +243,22 @@ public class BackupManager extends Stand
     @Override
     protected synchronized void stopInternal() throws LifecycleException {
 
-        super.stopInternal();
-        
+        if (log.isDebugEnabled())
+            log.debug("Stopping");
+
+        setState(LifecycleState.STOPPING);
+
         LazyReplicatedMap map = (LazyReplicatedMap)sessions;
         if ( map!=null ) {
             map.breakdown();
         }
 
         cluster.removeManager(this);
+        this.random = null;
+
+        if( initialized ) {
+            destroy();
+        }
     }
 
     @Override



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

Reply via email to