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