You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by fh...@apache.org on 2006/06/08 18:57:24 UTC

svn commit: r412798 - /tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/tcp/SimpleTcpCluster.java

Author: fhanik
Date: Thu Jun  8 09:57:24 2006
New Revision: 412798

URL: http://svn.apache.org/viewvc?rev=412798&view=rev
Log:
Fixed defect 39699
http://issues.apache.org/bugzilla/show_bug.cgi?id=39699

Modified:
    tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/tcp/SimpleTcpCluster.java

Modified: tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/tcp/SimpleTcpCluster.java
URL: http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/tcp/SimpleTcpCluster.java?rev=412798&r1=412797&r2=412798&view=diff
==============================================================================
--- tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/tcp/SimpleTcpCluster.java (original)
+++ tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/tcp/SimpleTcpCluster.java Thu Jun  8 09:57:24 2006
@@ -540,26 +540,30 @@
      * @see DeltaManager#start()
      */
     public synchronized Manager createManager(String name) {
-        if (log.isDebugEnabled())
-            log.debug("Creating ClusterManager for context " + name
-                    + " using class " + getManagerClassName());
+        ClassLoader oldCtxLoader = Thread.currentThread().getContextClassLoader();
         Manager manager = null;
         try {
-            manager = (Manager) getClass().getClassLoader().loadClass(
-                    getManagerClassName()).newInstance();
-        } catch (Exception x) {
-            log.error("Unable to load class for replication manager", x);
-            manager = new org.apache.catalina.cluster.session.DeltaManager();
-        } finally {
-            if(manager != null) {
-                manager.setDistributable(true);
-                if (manager instanceof ClusterManager) {
-                    ClusterManager cmanager = (ClusterManager) manager ;
-                    cmanager.setDefaultMode(true);
-                    cmanager.setName(getManagerName(name,manager));
-                    cmanager.setCluster(this);
+            Thread.currentThread().setContextClassLoader(SimpleTcpCluster.class.getClassLoader());
+            if (log.isDebugEnabled())
+                log.debug("Creating ClusterManager for context " + name + " using class " + getManagerClassName());
+            try {
+                manager = (Manager) getClass().getClassLoader().loadClass(getManagerClassName()).newInstance();
+            } catch (Exception x) {
+                log.error("Unable to load class for replication manager", x);
+                manager = new org.apache.catalina.cluster.session.DeltaManager();
+            } finally {
+                if (manager != null) {
+                    manager.setDistributable(true);
+                    if (manager instanceof ClusterManager) {
+                        ClusterManager cmanager = (ClusterManager) manager;
+                        cmanager.setDefaultMode(true);
+                        cmanager.setName(getManagerName(name, manager));
+                        cmanager.setCluster(this);
+                    }
                 }
             }
+        }finally {
+            Thread.currentThread().setContextClassLoader(oldCtxLoader);
         }
         return manager;
     }



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