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>