costin      2002/11/05 13:35:00

  Modified:    catalina/src/share/org/apache/catalina/core
                        StandardWrapper.java
  Log:
  Use commons-logging.
  
  Add a short message for servlets that take a long time to load
  ( right now it's 200 ms - we can increase it, but no need to
  make it configurable, it's mostly do debug perf. ).
  
  I used idea to edit the file - and it removed unused imports and
  forced me to fix some name mismatches... Probably should go back
  to emacs...
  
  Revision  Changes    Path
  1.7       +40 -53    
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardWrapper.java
  
  Index: StandardWrapper.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardWrapper.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- StandardWrapper.java      16 Oct 2002 15:42:09 -0000      1.6
  +++ StandardWrapper.java      5 Nov 2002 21:35:00 -0000       1.7
  @@ -65,43 +65,17 @@
   package org.apache.catalina.core;
   
   
  -import java.io.File;
  -import java.io.IOException;
  -import java.io.PrintStream;
  -import java.net.URL;
  -import java.util.Enumeration;
  -import java.util.HashMap;
  -import java.util.Stack;
  -import javax.servlet.Servlet;
  -import javax.servlet.ServletConfig;
  -import javax.servlet.ServletContext;
  -import javax.servlet.ServletException;
  -import javax.servlet.SingleThreadModel;
  -import javax.servlet.UnavailableException;
  -import javax.servlet.http.HttpServletResponse;
  -import org.apache.catalina.Container;
  -import org.apache.catalina.ContainerServlet;
  -import org.apache.catalina.Context;
  -import org.apache.catalina.InstanceEvent;
  -import org.apache.catalina.InstanceListener;
  -import org.apache.catalina.Lifecycle;
  -import org.apache.catalina.LifecycleException;
  -import org.apache.catalina.Loader;
  -import org.apache.catalina.Logger;
  -import org.apache.catalina.Request;
  -import org.apache.catalina.Response;
  -import org.apache.catalina.Wrapper;
  -import javax.servlet.ServletRequest;
  -import javax.servlet.ServletResponse;
  -import org.apache.catalina.loader.StandardClassLoader;
  +import org.apache.catalina.*;
  +import org.apache.catalina.security.SecurityUtil;
   import org.apache.catalina.util.Enumerator;
   import org.apache.catalina.util.InstanceSupport;
  -import org.apache.catalina.security.SecurityUtil;
   import org.apache.tomcat.util.log.SystemLogHandler;
   
  -import java.security.PrivilegedActionException;
  -import java.security.PrivilegedExceptionAction;
  -import javax.security.auth.Subject;
  +import javax.servlet.*;
  +import java.io.PrintStream;
  +import java.util.Enumeration;
  +import java.util.HashMap;
  +import java.util.Stack;
   /**
    * Standard implementation of the <b>Wrapper</b> interface that represents
    * an individual servlet definition.  No child Containers are allowed, and
  @@ -116,7 +90,8 @@
       extends ContainerBase
       implements ServletConfig, Wrapper {
   
  -
  +    private static org.apache.commons.logging.Log log=
  +        org.apache.commons.logging.LogFactory.getLog( StandardWrapper.class );
       // ----------------------------------------------------------- Constructors
   
   
  @@ -440,7 +415,7 @@
        * Set the maximum number of instances that will be allocated when a single
        * thread model servlet is used.
        *
  -     * @param maxInstnces New value of maxInstances
  +     * @param maxInstances New value of maxInstances
        */
       public void setMaxInstances(int maxInstances) {
   
  @@ -481,7 +456,7 @@
       /**
        * Set the run-as identity for this servlet.
        *
  -     * @param value New run-as identity value
  +     * @param runAs New run-as identity value
        */
       public void setRunAs(String runAs) {
   
  @@ -642,8 +617,8 @@
        */
       public Servlet allocate() throws ServletException {
   
  -        if (debug >= 1)
  -            log("Allocating an instance");
  +        if (log.isDebugEnabled())
  +            log.debug("Allocating an instance");
   
           // If we are currently unloading this servlet, throw an exception
           if (unloading)
  @@ -670,8 +645,8 @@
               }
   
               if (!singleThreadModel) {
  -                if (debug >= 2)
  -                    log("  Returning non-STM instance");
  +                if (log.isTraceEnabled())
  +                    log.trace("  Returning non-STM instance");
                   countAllocated++;
                   return (instance);
               }
  @@ -700,8 +675,8 @@
                       }
                   }
               }
  -            if (debug >= 2)
  -                log("  Returning allocated STM instance");
  +            if (log.isTraceEnabled())
  +                log.trace("  Returning allocated STM instance");
               countAllocated++;
               return (Servlet) instancePool.pop();
   
  @@ -833,6 +808,7 @@
           SystemLogHandler.startCapture();
           Servlet servlet;
           try {
  +            long t1=System.currentTimeMillis();
               // If this "servlet" is really a JSP file, get the right class.
               // HOLD YOUR NOSE - this is a kludge that avoids having to do special
               // case Catalina-specific code in Jasper - it also requires that the
  @@ -866,8 +842,11 @@
               // Special case class loader for a container provided servlet
               if (isContainerProvidedServlet(actualClass)) {
                   classLoader = this.getClass().getClassLoader();
  -                log(sm.getString
  -                      ("standardWrapper.containerServlet", getName()));
  +                long t2=System.currentTimeMillis();
  +                if( t2-t1 > 200 )
  +                    log.info(sm.getString
  +                             ("standardWrapper.containerServlet", getName()) +
  +                             " " + (t2 - t1 ));
               }
       
               // Load the specified servlet class from the appropriate class loader
  @@ -880,6 +859,7 @@
                   }
               } catch (ClassNotFoundException e) {
                   unavailable(null);
  +                log.error( "Error loading " + classLoader + " " + actualClass, e );
                   throw new ServletException
                       (sm.getString("standardWrapper.missingClass", actualClass),
                        e);
  @@ -919,7 +899,10 @@
                   ((ContainerServlet) servlet).setWrapper(this);
               }
       
  -    
  +            if( System.currentTimeMillis() -t1 > 100 ) {
  +                log.info("Created servlet class " + actualClass + " " +
  +                         (System.currentTimeMillis() - t1 ) );
  +            }
               // Call the initialization method of this servlet
               try {
                   instanceSupport.fireInstanceEvent(InstanceEvent.BEFORE_INIT_EVENT,
  @@ -985,6 +968,10 @@
                       instancePool = new Stack();
               }
               fireContainerEvent("load", this);
  +            if( System.currentTimeMillis() -t1 > 100 ) {
  +                log.info("Loaded servlet  " + actualClass + " " +
  +                         (System.currentTimeMillis() - t1 ) );
  +            }
           } finally {
               String log = SystemLogHandler.stopCapture();
               if (log != null && log.length() > 0) {
  @@ -1068,7 +1055,7 @@
        *  to mark this servlet as permanently unavailable
        */
       public void unavailable(UnavailableException unavailable) {
  -        log(sm.getString("standardWrapper.unavailable", getName()));
  +        log.info(sm.getString("standardWrapper.unavailable", getName()));
           if (unavailable == null)
               setAvailable(Long.MAX_VALUE);
           else if (unavailable.isPermanent())
  @@ -1107,7 +1094,7 @@
               int nRetries = 0;
               while (nRetries < 10) {
                   if (nRetries == 0) {
  -                    log("Waiting for " + countAllocated +
  +                    log.info("Waiting for " + countAllocated +
                           " instance(s) to be deallocated");
                   }
                   try {
  @@ -1269,7 +1256,7 @@
        * container provided servlet class that should be loaded by the
        * server class loader.
        *
  -     * @param name Name of the class to be checked
  +     * @param classname Name of the class to be checked
        */
       private boolean isContainerProvidedServlet(String classname) {
   
  @@ -1357,7 +1344,7 @@
           try {
               unload();
           } catch (ServletException e) {
  -            log(sm.getString("standardWrapper.unloadException", getName()), e);
  +            log.error(sm.getString("standardWrapper.unloadException", getName()), 
e);
           }
   
           // Shut down this component
  
  
  

--
To unsubscribe, e-mail:   <mailto:tomcat-dev-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:tomcat-dev-help@;jakarta.apache.org>

Reply via email to