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 2009/12/03 16:25:55 UTC

svn commit: r886814 - in /tomcat/trunk/java/org/apache/catalina: Wrapper.java connector/Request.java core/StandardWrapper.java startup/WebXml.java

Author: markt
Date: Thu Dec  3 15:25:54 2009
New Revision: 886814

URL: http://svn.apache.org/viewvc?rev=886814&view=rev
Log:
Add support for the MultipartConfig annotation

Modified:
    tomcat/trunk/java/org/apache/catalina/Wrapper.java
    tomcat/trunk/java/org/apache/catalina/connector/Request.java
    tomcat/trunk/java/org/apache/catalina/core/StandardWrapper.java
    tomcat/trunk/java/org/apache/catalina/startup/WebXml.java

Modified: tomcat/trunk/java/org/apache/catalina/Wrapper.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/Wrapper.java?rev=886814&r1=886813&r2=886814&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/Wrapper.java (original)
+++ tomcat/trunk/java/org/apache/catalina/Wrapper.java Thu Dec  3 15:25:54 2009
@@ -340,12 +340,12 @@
      * multi-part configuration has been defined, then <code>null</code> will be
      * returned.
      */
-    public MultipartConfigElement getMultipartConfig();
+    public MultipartConfigElement getMultipartConfigElement();
     
     
     /**
      * Set the multi-part configuration for the associated servlet. To clear the
      * multi-part configuration specify <code>null</code> as the new value.
      */
-    public void setMultipartConfig(MultipartConfigElement multipartConfig);
+    public void setMultipartConfigElement(MultipartConfigElement multipartConfig);
 }

Modified: tomcat/trunk/java/org/apache/catalina/connector/Request.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/Request.java?rev=886814&r1=886813&r2=886814&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/connector/Request.java (original)
+++ tomcat/trunk/java/org/apache/catalina/connector/Request.java Thu Dec  3 15:25:54 2009
@@ -2393,12 +2393,19 @@
     public Collection<Part> getParts() throws IOException, IllegalStateException,
             ServletException {
         
-        MultipartConfigElement mce = getWrapper().getMultipartConfig();
+        MultipartConfigElement mce = getWrapper().getMultipartConfigElement();
         if (mce == null) {
             return Collections.emptyList();
         }
         
-        File location = new File(mce.getLocation());
+        File location;
+        String locationStr = mce.getLocation();
+        if (locationStr == null || locationStr.length() == 0) {
+            location = ((File) context.getServletContext().getAttribute(
+                    ServletContext.TEMPDIR));
+        } else {
+            location = new File(locationStr);
+        }
         
         if (!location.isAbsolute() || !location.isDirectory()) {
             throw new IOException(

Modified: tomcat/trunk/java/org/apache/catalina/core/StandardWrapper.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardWrapper.java?rev=886814&r1=886813&r2=886814&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/StandardWrapper.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/StandardWrapper.java Thu Dec  3 15:25:54 2009
@@ -44,6 +44,7 @@
 import javax.servlet.ServletResponse;
 import javax.servlet.SingleThreadModel;
 import javax.servlet.UnavailableException;
+import javax.servlet.annotation.MultipartConfig;
 
 import org.apache.catalina.Container;
 import org.apache.catalina.ContainerServlet;
@@ -258,7 +259,7 @@
     /**
      * Multipart config
      */
-    protected MultipartConfigElement multipartConfig = null;
+    protected MultipartConfigElement multipartConfigElement = null;
 
     /**
      * Static class array used when the SecurityManager is turned on and 
@@ -1052,6 +1053,15 @@
                     (sm.getString("standardWrapper.instantiate", actualClass), e);
             }
 
+            if (multipartConfigElement == null) {
+                MultipartConfig annotation =
+                        servlet.getClass().getAnnotation(MultipartConfig.class);
+                if (annotation != null) {
+                    multipartConfigElement =
+                            new MultipartConfigElement(annotation);
+                }
+            }
+
             // Special handling for ContainerServlet instances
             if ((servlet instanceof ContainerServlet) &&
                   (isContainerProvidedServlet(actualClass) ||
@@ -1483,12 +1493,13 @@
         return classLoadTime;
     }
 
-    public MultipartConfigElement getMultipartConfig() {
-        return multipartConfig;
+    public MultipartConfigElement getMultipartConfigElement() {
+        return multipartConfigElement;
     }
 
-    public void setMultipartConfig(MultipartConfigElement multipartConfig) {
-        this.multipartConfig = multipartConfig;
+    public void setMultipartConfigElement(
+            MultipartConfigElement multipartConfigElement) {
+        this.multipartConfigElement = multipartConfigElement;
     }
 
     // -------------------------------------------------------- Package Methods

Modified: tomcat/trunk/java/org/apache/catalina/startup/WebXml.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/WebXml.java?rev=886814&r1=886813&r2=886814&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/WebXml.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/WebXml.java Thu Dec  3 15:25:54 2009
@@ -568,23 +568,18 @@
             wrapper.setServletClass(servlet.getServletClass());
             MultipartDef multipartdef = servlet.getMultipartDef();
             if (multipartdef != null) {
-                String location = multipartdef.getLocation();
-                if (location == null || location.length() == 0) {
-                    location = ((File) context.getServletContext().getAttribute(
-                            ServletContext.TEMPDIR)).getAbsolutePath();
-                }
                 if (multipartdef.getMaxFileSize() != null &&
                         multipartdef.getMaxRequestSize()!= null &&
                         multipartdef.getFileSizeThreshold() != null) {
-                    wrapper.setMultipartConfig(new MultipartConfigElement(
-                            location,
+                    wrapper.setMultipartConfigElement(new MultipartConfigElement(
+                            multipartdef.getLocation(),
                             Long.parseLong(multipartdef.getMaxFileSize()),
                             Long.parseLong(multipartdef.getMaxRequestSize()),
                             Integer.parseInt(
                                     multipartdef.getFileSizeThreshold())));
                 } else {
-                    wrapper.setMultipartConfig(new MultipartConfigElement(
-                            location));
+                    wrapper.setMultipartConfigElement(new MultipartConfigElement(
+                            multipartdef.getLocation()));
                 }
             }
             context.addChild(wrapper);



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