You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2004/02/11 00:21:42 UTC
cvs commit: jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/defaultcontext SaveDefaultContextAction.java
markt 2004/02/10 15:21:42
Modified: webapps/admin/WEB-INF/classes/org/apache/webapp/admin/defaultcontext
SaveDefaultContextAction.java
Log:
Part of fix for bug 14193.
- Create loader and/or manager mbeans if required. Needed to move things around to get this to work but these moves should be functionally neutral.
Revision Changes Path
1.5 +44 -48 jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/defaultcontext/SaveDefaultContextAction.java
Index: SaveDefaultContextAction.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/defaultcontext/SaveDefaultContextAction.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- SaveDefaultContextAction.java 19 Sep 2002 22:56:05 -0000 1.4
+++ SaveDefaultContextAction.java 10 Feb 2004 23:21:42 -0000 1.5
@@ -63,17 +63,11 @@
import java.net.URLEncoder;
-import java.util.Iterator;
import java.util.Locale;
import java.io.IOException;
import javax.management.Attribute;
import javax.management.MBeanServer;
-import javax.management.MBeanServerFactory;
-import javax.management.QueryExp;
-import javax.management.Query;
-import javax.management.ObjectInstance;
import javax.management.ObjectName;
-import javax.management.JMException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -184,29 +178,33 @@
String lObjectName = cform.getLoaderObjectName();
String mObjectName = cform.getManagerObjectName();
- // Perform a "Create DefaultContext" transaction (if requested)
- if ("Create".equals(adminAction)) {
-
- String operation = null;
- Object values[] = null;
+ String operation = null;
+ Object values[] = null;
- try {
- // get the parent name
- String parentName = cform.getParentObjectName();
- ObjectName poname = new ObjectName(parentName);
-
- String host = poname.getKeyProperty("host");
- ObjectName oname = null;
- // Ensure that the requested default context name is unique
- if (host!=null) {
- oname = new ObjectName(TomcatTreeBuilder.DEFAULTCONTEXT_TYPE +
- ",host=" + host + ",service=" +
- poname.getKeyProperty("service"));
- } else {
- oname = new ObjectName(TomcatTreeBuilder.DEFAULTCONTEXT_TYPE +
- ",service=" + poname.getKeyProperty("name"));
- }
+ try {
+ // get the parent name
+ String parentName = cform.getParentObjectName();
+ ObjectName poname = new ObjectName(parentName);
+
+ String host = poname.getKeyProperty("host");
+ ObjectName oname = null;
+
+ // Ensure that the requested default context name is unique
+ if (host!=null) {
+ oname = new ObjectName(TomcatTreeBuilder.DEFAULTCONTEXT_TYPE +
+ ",host=" + host + ",service=" +
+ poname.getKeyProperty("service"));
+ } else {
+ oname = new ObjectName(TomcatTreeBuilder.DEFAULTCONTEXT_TYPE +
+ ",service=" + poname.getKeyProperty("name"));
+ }
+ // Look up our MBeanFactory MBean
+ ObjectName fname =
+ new ObjectName(TomcatTreeBuilder.FACTORY_TYPE);
+
+ // Perform a "Create DefaultContext" transaction (if requested)
+ if ("Create".equals(adminAction)) {
if (mBServer.isRegistered(oname)) {
ActionErrors errors = new ActionErrors();
errors.add("contextName",
@@ -215,10 +213,6 @@
return (new ActionForward(mapping.getInput()));
}
- // Look up our MBeanFactory MBean
- ObjectName fname =
- new ObjectName(TomcatTreeBuilder.FACTORY_TYPE);
-
// Create a new DefaultContext object
values = new Object[1];
values[0] = parentName;
@@ -227,8 +221,10 @@
cObjectName = (String)
mBServer.invoke(fname, operation,
values, createDefaultContextTypes);
+ }
- // Create a new Loader object
+ // Create a new Loader if on does not already exist
+ if (!mBServer.isRegistered(new ObjectName(lObjectName))) {
values = new String[1];
// parent of loader is the newly created context
values[0] = cObjectName.toString();
@@ -240,8 +236,10 @@
values, createStandardLoaderTypes);
getServlet().log("loader created "+lObjectName);
+ }
- // Create a new StandardManager object
+ // Create a new StandardManager if one does not already exist
+ if (!mBServer.isRegistered(new ObjectName(mObjectName))) {
values = new String[1];
// parent of manager is the newly created Context
values[0] = cObjectName.toString();
@@ -253,19 +251,17 @@
// Add the new Default Context to our tree control node
addToTreeControlNode(oname, cObjectName,
parentName, resources, session);
-
- } catch (Exception e) {
- getServlet().log
- (resources.getMessage(locale, "users.error.invoke",
- operation), e);
- response.sendError
- (HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
- resources.getMessage(locale, "users.error.invoke",
- operation));
- return (null);
-
}
+ } catch (Exception e) {
+ getServlet().log
+ (resources.getMessage(locale, "users.error.invoke",
+ operation), e);
+ response.sendError
+ (HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
+ resources.getMessage(locale, "users.error.invoke",
+ operation));
+ return (null);
}
// Perform attribute updates as requested
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org