tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bugzi...@apache.org
Subject DO NOT REPLY [Bug 3841] New: - incorrect state reported by EmbeddedManager.java:start()
Date Wed, 26 Sep 2001 17:49:43 GMT
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=3841>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=3841

incorrect state reported by EmbeddedManager.java:start()

           Summary: incorrect state reported by EmbeddedManager.java:start()
           Product: Tomcat 4
           Version: 4.0 Final
          Platform: All
        OS/Version: Other
            Status: NEW
          Severity: Minor
          Priority: Other
         Component: Catalina
        AssignedTo: tomcat-dev@jakarta.apache.org
        ReportedBy: toby@caboteria.org


The start() method of EmbeddedManager.java reports its state incorrectly if
Embedded.java:start() throws an exception.  The "catch" block looks OK, it sets
the state to "Stopped", but the problem is that the code after the catch then
gets executed and sends an erroneous AttributeChangeNotification to the JMX
MBean Server.

The fix is to put the AttributeChangeNotification into the try{} block, so that
it won't run if an error is thrown.  Here's a patch:

Index: catalina/src/share/org/apache/catalina/startup/EmbeddedManager.java
===================================================================
RCS file:
/home/cvspublic/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/EmbeddedManager.java,v
retrieving revision 1.3
diff -u -r1.3 EmbeddedManager.java
--- catalina/src/share/org/apache/catalina/startup/EmbeddedManager.java	2001/07/22 20:25:13
1.3
+++ catalina/src/share/org/apache/catalina/startup/EmbeddedManager.java	2001/09/26 16:19:17
@@ -192,6 +192,13 @@
 
             embedded.start();
 
+
    state = STARTED;
+
    notification = new AttributeChangeNotification
+
	(this, sequenceNumber++, System.currentTimeMillis(),
+
	 "Started " + NAME, "State", "java.lang.Integer",
+
	 new Integer(STARTING), new Integer(STARTED));
+
    sendNotification(notification);
+
         } catch (Throwable t) {
             state = STOPPED;
             notification = new AttributeChangeNotification
@@ -200,13 +207,6 @@
                  new Integer(STARTING), new Integer(STOPPED));
             sendNotification(notification);
         }
-
-        state = STARTED;
-        notification = new AttributeChangeNotification
-            (this, sequenceNumber++, System.currentTimeMillis(),
-             "Started " + NAME, "State", "java.lang.Integer",
-             new Integer(STARTING), new Integer(STARTED));
-        sendNotification(notification);
 
     }

Mime
View raw message