craigmcc 00/12/14 16:16:24 Modified: jasper/src/share/org/apache/jasper/logging JasperLogger.java Log: Encapsulate creation of a background logging thread inside a doPrivileged() block to avoid problems when running under a security manager. Submitted by: Vivek Nagar <[EMAIL PROTECTED]> Revision Changes Path 1.3 +19 -3 jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/logging/JasperLogger.java Index: JasperLogger.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/logging/JasperLogger.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- JasperLogger.java 2000/09/26 21:39:53 1.2 +++ JasperLogger.java 2000/12/15 00:16:24 1.3 @@ -59,7 +59,8 @@ import java.io.Writer; import java.io.StringWriter; import java.io.PrintWriter; - +import java.security.AccessController; +import java.security.PrivilegedAction; import java.util.Date; import javax.servlet.ServletException; import javax.servlet.ServletContext; @@ -162,8 +163,23 @@ private void init() { if (logDaemon == null || logQueue == null) { logQueue = new Queue(); - logDaemon = new LogDaemon(logQueue, servletContext); - logDaemon.start(); + class createDaemon implements PrivilegedAction { + private Queue logQueue; + private ServletContext servletContext; + public createDaemon(Queue logQueue, + ServletContext servletContext) { + this.logQueue = logQueue; + this.servletContext = servletContext; + } + public Object run() { + LogDaemon logDaemon = + new LogDaemon(logQueue, servletContext); + logDaemon.start(); + return (logDaemon); + } + } + createDaemon cd = new createDaemon(logQueue, servletContext); + logDaemon = (LogDaemon) AccessController.doPrivileged(cd); } }