[mod_cluster-commits] mod_cluster SVN: r798 - branches/MOD_CLUSTER_1_0_10_GA_CP/src/main/java/org/jboss/modcluster.

do-not-reply at jboss.org do-not-reply at jboss.org
Mon Apr 9 12:59:30 EDT 2012


Author: jfrederic.clere at jboss.com
Date: 2012-04-09 12:59:30 -0400 (Mon, 09 Apr 2012)
New Revision: 798

Modified:
   branches/MOD_CLUSTER_1_0_10_GA_CP/src/main/java/org/jboss/modcluster/CatalinaEventHandlerAdapter.java
Log:
Fix for MODCLUSTER-299.


Modified: branches/MOD_CLUSTER_1_0_10_GA_CP/src/main/java/org/jboss/modcluster/CatalinaEventHandlerAdapter.java
===================================================================
--- branches/MOD_CLUSTER_1_0_10_GA_CP/src/main/java/org/jboss/modcluster/CatalinaEventHandlerAdapter.java	2012-04-09 16:51:47 UTC (rev 797)
+++ branches/MOD_CLUSTER_1_0_10_GA_CP/src/main/java/org/jboss/modcluster/CatalinaEventHandlerAdapter.java	2012-04-09 16:59:30 UTC (rev 798)
@@ -24,6 +24,12 @@
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
 
+import java.lang.management.ManagementFactory;
+
+import javax.management.MalformedObjectNameException;
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+
 import org.apache.catalina.Container;
 import org.apache.catalina.ContainerEvent;
 import org.apache.catalina.ContainerListener;
@@ -44,6 +50,8 @@
    /** Initialization flag. */
    private volatile boolean init = false;
 
+   private Boolean isTomcat = null;
+
    private ContainerEventHandler<Server, Engine, Context> eventHandler;
 
    // ----------------------------------------------------------- Constructors
@@ -135,7 +143,23 @@
          else if (source instanceof Context)
          {
             // Start a web-app via the /manager (tomcat) application.
-            this.eventHandler.startContext((Context) source);
+            // In fact we need to make sure it is coming for /manager (tomcat) otherwise it causes MODCLUSTER-299
+            if (isTomcat == null) {
+                MBeanServer server = ManagementFactory.getPlatformMBeanServer();
+                try {
+                    ObjectName name = ObjectName.getInstance("Catalina:type=Server");
+                    if (server.isRegistered(name)) {
+                        isTomcat = new Boolean(true);
+                    } else  {
+                        isTomcat = new Boolean(false);
+                    }
+                } catch(MalformedObjectNameException ex) {
+                        isTomcat = new Boolean(false);
+                }
+            }
+            if (isTomcat) {
+                this.eventHandler.startContext((Context) source);
+            }
          }
       }
       else if (type.equals(Lifecycle.BEFORE_STOP_EVENT))



More information about the mod_cluster-commits mailing list