Author: markt
Date: Fri Jun 19 12:10:05 2009
New Revision: 786471

URL: http://svn.apache.org/viewvc?rev=786471&view=rev
Log:
The servletapi gives us a perfectly good constant for 
'javax.servlet.context.tempdir'. Use it.

Modified:
    tomcat/trunk/java/org/apache/catalina/Globals.java
    tomcat/trunk/java/org/apache/catalina/core/StandardContext.java
    tomcat/trunk/java/org/apache/catalina/loader/WebappLoader.java
    tomcat/trunk/java/org/apache/catalina/manager/HTMLManagerServlet.java
    tomcat/trunk/java/org/apache/catalina/manager/ManagerServlet.java
    tomcat/trunk/java/org/apache/catalina/servlets/CGIServlet.java
    tomcat/trunk/java/org/apache/catalina/servlets/DefaultServlet.java
    tomcat/trunk/java/org/apache/catalina/session/FileStore.java
    tomcat/trunk/java/org/apache/catalina/session/StandardManager.java
    tomcat/trunk/java/org/apache/catalina/valves/AccessLogValve.java
    tomcat/trunk/java/org/apache/jasper/Constants.java
    tomcat/trunk/java/org/apache/jasper/EmbeddedServletOptions.java
    tomcat/trunk/java/org/apache/jasper/compiler/JspRuntimeContext.java
    tomcat/trunk/test/org/apache/catalina/connector/TestRequest.java

Modified: tomcat/trunk/java/org/apache/catalina/Globals.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/Globals.java?rev=786471&r1=786470&r2=786471&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/Globals.java (original)
+++ tomcat/trunk/java/org/apache/catalina/Globals.java Fri Jun 19 12:10:05 2009
@@ -317,15 +317,6 @@
 
 
     /**
-     * The servlet context attribute under which we store a temporary
-     * working directory (as an object of type File) for use by servlets
-     * within this web application.
-     */
-    public static final String WORK_DIR_ATTR =
-        "javax.servlet.context.tempdir";
-
-
-    /**
      * The master flag which controls strict servlet specification 
      * compliance.
      */

Modified: tomcat/trunk/java/org/apache/catalina/core/StandardContext.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardContext.java?rev=786471&r1=786470&r2=786471&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/StandardContext.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/StandardContext.java Fri Jun 19 
12:10:05 2009
@@ -5122,10 +5122,10 @@
         dir.mkdirs();
 
         // Set the appropriate servlet context attribute
-        getServletContext().setAttribute(Globals.WORK_DIR_ATTR, dir);
+        getServletContext().setAttribute(ServletContext.TEMPDIR, dir);
         if (getServletContext() instanceof ApplicationContext)
             ((ApplicationContext) getServletContext()).setAttributeReadOnly
-                (Globals.WORK_DIR_ATTR);
+                (ServletContext.TEMPDIR);
 
     }
 

Modified: tomcat/trunk/java/org/apache/catalina/loader/WebappLoader.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/loader/WebappLoader.java?rev=786471&r1=786470&r2=786471&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/loader/WebappLoader.java (original)
+++ tomcat/trunk/java/org/apache/catalina/loader/WebappLoader.java Fri Jun 19 
12:10:05 2009
@@ -792,7 +792,7 @@
 
         // Assigning permissions for the work directory
         File workDir =
-            (File) servletContext.getAttribute(Globals.WORK_DIR_ATTR);
+            (File) servletContext.getAttribute(ServletContext.TEMPDIR);
         if (workDir != null) {
             try {
                 String workDirPath = workDir.getCanonicalPath();
@@ -883,7 +883,7 @@
         loaderRepositories=new ArrayList<String>();
         // Loading the work directory
         File workDir =
-            (File) servletContext.getAttribute(Globals.WORK_DIR_ATTR);
+            (File) servletContext.getAttribute(ServletContext.TEMPDIR);
         if (workDir == null) {
             log.info("No work dir for " + servletContext);
         }

Modified: tomcat/trunk/java/org/apache/catalina/manager/HTMLManagerServlet.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/manager/HTMLManagerServlet.java?rev=786471&r1=786470&r2=786471&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/manager/HTMLManagerServlet.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/manager/HTMLManagerServlet.java Fri 
Jun 19 12:10:05 2009
@@ -31,6 +31,8 @@
 import java.util.List;
 import java.util.Map;
 import java.util.TreeMap;
+
+import javax.servlet.ServletContext;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -175,7 +177,7 @@
 
         // Get the tempdir
         File tempdir = (File) getServletContext().getAttribute
-            ("javax.servlet.context.tempdir");
+            (ServletContext.TEMPDIR);
         // Set upload parameters
         upload.setSizeMax(-1);
         upload.setRepositoryPath(tempdir.getCanonicalPath());

Modified: tomcat/trunk/java/org/apache/catalina/manager/ManagerServlet.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/manager/ManagerServlet.java?rev=786471&r1=786470&r2=786471&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/manager/ManagerServlet.java (original)
+++ tomcat/trunk/java/org/apache/catalina/manager/ManagerServlet.java Fri Jun 
19 12:10:05 2009
@@ -33,6 +33,7 @@
 import javax.naming.InitialContext;
 import javax.naming.NamingEnumeration;
 import javax.naming.NamingException;
+import javax.servlet.ServletContext;
 import javax.servlet.ServletException;
 import javax.servlet.ServletInputStream;
 import javax.servlet.UnavailableException;
@@ -452,7 +453,7 @@
 
         // Calculate the directory into which we will be deploying applications
         versioned = (File) getServletContext().getAttribute
-            ("javax.servlet.context.tempdir");
+            (ServletContext.TEMPDIR);
 
         // Identify the appBase of the owning Host of this Context
         // (if any)

Modified: tomcat/trunk/java/org/apache/catalina/servlets/CGIServlet.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/servlets/CGIServlet.java?rev=786471&r1=786470&r2=786471&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/servlets/CGIServlet.java (original)
+++ tomcat/trunk/java/org/apache/catalina/servlets/CGIServlet.java Fri Jun 19 
12:10:05 2009
@@ -694,7 +694,7 @@
         protected void setupFromContext(ServletContext context) {
             this.context = context;
             this.webAppRootDir = context.getRealPath("/");
-            this.tmpDir = (File) context.getAttribute(Globals.WORK_DIR_ATTR);
+            this.tmpDir = (File) context.getAttribute(ServletContext.TEMPDIR);
         }
 
 

Modified: tomcat/trunk/java/org/apache/catalina/servlets/DefaultServlet.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/servlets/DefaultServlet.java?rev=786471&r1=786470&r2=786471&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/servlets/DefaultServlet.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/servlets/DefaultServlet.java Fri Jun 
19 12:10:05 2009
@@ -42,6 +42,7 @@
 import javax.naming.NamingEnumeration;
 import javax.naming.NamingException;
 import javax.naming.directory.DirContext;
+import javax.servlet.ServletContext;
 import javax.servlet.ServletException;
 import javax.servlet.ServletOutputStream;
 import javax.servlet.UnavailableException;
@@ -497,7 +498,7 @@
         // resource - create a temp. file on the local filesystem to
         // perform this operation
         File tempDir = (File) getServletContext().getAttribute
-            ("javax.servlet.context.tempdir");
+            (ServletContext.TEMPDIR);
         // Convert all '/' characters to '.' in resourcePath
         String convertedResourcePath = path.replace('/', '.');
         File contentFile = new File(tempDir, convertedResourcePath);

Modified: tomcat/trunk/java/org/apache/catalina/session/FileStore.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/session/FileStore.java?rev=786471&r1=786470&r2=786471&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/session/FileStore.java (original)
+++ tomcat/trunk/java/org/apache/catalina/session/FileStore.java Fri Jun 19 
12:10:05 2009
@@ -399,7 +399,7 @@
                 ServletContext servletContext =
                     ((Context) container).getServletContext();
                 File work = (File)
-                    servletContext.getAttribute(Globals.WORK_DIR_ATTR);
+                    servletContext.getAttribute(ServletContext.TEMPDIR);
                 file = new File(work, this.directory);
             } else {
                 throw new IllegalArgumentException

Modified: tomcat/trunk/java/org/apache/catalina/session/StandardManager.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/session/StandardManager.java?rev=786471&r1=786470&r2=786471&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/session/StandardManager.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/session/StandardManager.java Fri Jun 
19 12:10:05 2009
@@ -742,7 +742,7 @@
                 ServletContext servletContext =
                     ((Context) container).getServletContext();
                 File tempdir = (File)
-                    servletContext.getAttribute(Globals.WORK_DIR_ATTR);
+                    servletContext.getAttribute(ServletContext.TEMPDIR);
                 if (tempdir != null)
                     file = new File(tempdir, pathname);
             }

Modified: tomcat/trunk/java/org/apache/catalina/valves/AccessLogValve.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/valves/AccessLogValve.java?rev=786471&r1=786470&r2=786471&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/valves/AccessLogValve.java (original)
+++ tomcat/trunk/java/org/apache/catalina/valves/AccessLogValve.java Fri Jun 19 
12:10:05 2009
@@ -690,10 +690,12 @@
         }
 
         // Log this message
-        if (writer != null) {
-            writer.println(message);
-            if (!buffered) {
-                writer.flush();
+        synchronized(this) {
+            if (writer != null) {
+                writer.println(message);
+                if (!buffered) {
+                    writer.flush();
+                }
             }
         }
 

Modified: tomcat/trunk/java/org/apache/jasper/Constants.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/Constants.java?rev=786471&r1=786470&r2=786471&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/jasper/Constants.java (original)
+++ tomcat/trunk/java/org/apache/jasper/Constants.java Fri Jun 19 12:10:05 2009
@@ -120,7 +120,6 @@
      * uses. 
      */
     public static final String INC_SERVLET_PATH = 
"javax.servlet.include.servlet_path";
-    public static final String TMP_DIR = "javax.servlet.context.tempdir";
 
     // Must be kept in sync with org/apache/catalina/Globals.java
     public static final String ALT_DD_ATTR = 

Modified: tomcat/trunk/java/org/apache/jasper/EmbeddedServletOptions.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/EmbeddedServletOptions.java?rev=786471&r1=786470&r2=786471&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/jasper/EmbeddedServletOptions.java (original)
+++ tomcat/trunk/java/org/apache/jasper/EmbeddedServletOptions.java Fri Jun 19 
12:10:05 2009
@@ -571,7 +571,7 @@
             scratchDir = new File(dir);
         } else {
             // First try the Servlet 2.2 javax.servlet.context.tempdir property
-            scratchDir = (File) context.getAttribute(Constants.TMP_DIR);
+            scratchDir = (File) context.getAttribute(ServletContext.TEMPDIR);
             if (scratchDir == null) {
                 // Not running in a Servlet 2.2 container.
                 // Try to get the JDK 1.2 java.io.tmpdir property

Modified: tomcat/trunk/java/org/apache/jasper/compiler/JspRuntimeContext.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/compiler/JspRuntimeContext.java?rev=786471&r1=786470&r2=786471&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/jasper/compiler/JspRuntimeContext.java 
(original)
+++ tomcat/trunk/java/org/apache/jasper/compiler/JspRuntimeContext.java Fri Jun 
19 12:10:05 2009
@@ -394,16 +394,19 @@
                 docBase = docBase + "-";
                 permissionCollection.add(new FilePermission(docBase,"read"));
 
-                // Create a file read permission for web app tempdir (work)
-                // directory
+                // Spec says apps should have read/write for their temp
+                // directory. This is fine, as no security sensitive files, at
+                // least any that the app doesn't have full control of anyway,
+                // will be written here.
                 String workDir = options.getScratchDir().toString();
                 if (!workDir.endsWith(File.separator)){
                     permissionCollection.add
-                        (new FilePermission(workDir,"read"));
+                        (new FilePermission(workDir,"read,write"));
                     workDir = workDir + File.separator;
                 }
                 workDir = workDir + "-";
-                permissionCollection.add(new FilePermission(workDir,"read"));
+                permissionCollection.add(new FilePermission(
+                        workDir,"read,write,delete"));
 
                 // Allow the JSP to access 
org.apache.jasper.runtime.HttpJspBase
                 permissionCollection.add( new RuntimePermission(

Modified: tomcat/trunk/test/org/apache/catalina/connector/TestRequest.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/connector/TestRequest.java?rev=786471&r1=786470&r2=786471&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/connector/TestRequest.java (original)
+++ tomcat/trunk/test/org/apache/catalina/connector/TestRequest.java Fri Jun 19 
12:10:05 2009
@@ -56,35 +56,41 @@
         Bug37794Client client = new Bug37794Client();
 
         // Edge cases around zero
-        client.doRequest(-1); // Unlimited
+        client.doRequest(-1, false); // Unlimited
         assertTrue(client.isResponse200());
         assertTrue(client.isResponseBodyOK());
         client.reset();
-        client.doRequest(0); // Unlimited
+        client.doRequest(0, false); // Unlimited
         assertTrue(client.isResponse200());
         assertTrue(client.isResponseBodyOK());
         client.reset();
-        client.doRequest(1); // 1 byte - too small should fail
+        client.doRequest(1, false); // 1 byte - too small should fail
         assertTrue(client.isResponse500());
         
         client.reset();
         
         // Edge cases around actual content length
         client.reset();
-        client.doRequest(6); // Too small should fail
+        client.doRequest(6, false); // Too small should fail
         assertTrue(client.isResponse500());
         client.reset();
-        client.doRequest(7); // Just enough should pass
+        client.doRequest(7, false); // Just enough should pass
         assertTrue(client.isResponse200());
         assertTrue(client.isResponseBodyOK());
         client.reset();
-        client.doRequest(8); // 1 extra - should pass
+        client.doRequest(8, false); // 1 extra - should pass
         assertTrue(client.isResponse200());
         assertTrue(client.isResponseBodyOK());
         
         // Much larger
         client.reset();
-        client.doRequest(8096); // Plenty of space - should pass
+        client.doRequest(8096, false); // Plenty of space - should pass
+        assertTrue(client.isResponse200());
+        assertTrue(client.isResponseBodyOK());
+
+        // Check for case insensitivity
+        client.reset();
+        client.doRequest(8096, true); // Plenty of space - should pass
         assertTrue(client.isResponse200());
         assertTrue(client.isResponseBodyOK());
     }
@@ -115,7 +121,7 @@
      * Bug 37794 test client.
      */
     private static class Bug37794Client extends SimpleHttpClient {
-        private Exception doRequest(int postLimit) {
+        private Exception doRequest(int postLimit, boolean ucChunkedHead) {
             Tomcat tomcat = new Tomcat();
             try {
                 StandardContext root = tomcat.addContext("", TEMP_DIR);
@@ -129,14 +135,25 @@
                 
                 // Send request in two parts
                 String[] request = new String[2];
-                request[0] =
-                    "POST http://localhost:8080/test HTTP/1.1" + CRLF +
-                    "content-type: application/x-www-form-urlencoded" + CRLF +
-                    "Transfer-Encoding: chunked" + CRLF +
-                    "Connection: close" + CRLF +
-                    CRLF +
-                    "3" + CRLF +
-                    "a=1" + CRLF;
+                if (ucChunkedHead) {
+                    request[0] =
+                        "POST http://localhost:8080/test HTTP/1.1" + CRLF +
+                        "content-type: application/x-www-form-urlencoded" + 
CRLF +
+                        "Transfer-Encoding: CHUNKED" + CRLF +
+                        "Connection: close" + CRLF +
+                        CRLF +
+                        "3" + CRLF +
+                        "a=1" + CRLF;
+                } else {
+                    request[0] =
+                        "POST http://localhost:8080/test HTTP/1.1" + CRLF +
+                        "content-type: application/x-www-form-urlencoded" + 
CRLF +
+                        "Transfer-Encoding: chunked" + CRLF +
+                        "Connection: close" + CRLF +
+                        CRLF +
+                        "3" + CRLF +
+                        "a=1" + CRLF;
+                }
                 request[1] =
                     "4" + CRLF +
                     "&b=2" + CRLF +



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to