Hello,

I've been a MyFaces/Tomawahk user for the last few years. For the longest time, it completely served my needs and was very happy with the level of support that I received from the community. About a year ago, I decided to adopt JBoss Seam and a way to augment my own implementation of "conversations" in JSF. All was well until I decided to use Seam's fielUpload component alongside the MyFaces ExtensionFilter. (see: http://www.jboss.com/index.html? module=bb&op=viewtopic&p=4013611#4013611)

The ExtensionFilter is great at many things but lacks modularity in my opinion. I shouldn't be forced to MultipartRequestWrapper in order to get resource streaming and content negotiation. I've attached a patch that allows a user to disable "Multipart Request Wrapping" via an init parameter while leaving the default behavior intact. I've been running this patch in QA for a few days and all seems well.

Does this seem like something that could eventually make it in the next release? If not, what would be a suitable alternative?

Please excuse me if I'm breaking protocol by in-lining a diff but I wasn't sure how you guys operate for these kind of things.

Thanks in advance,

Jose de castro
Sr. Software Engineer
Voxeo Corporation


Index: /Users/jdecastro/Work/Libraries/tomahawk-1.1.6-src/core/src/ main/java/org/apache/myfaces/webapp/filter/ExtensionsFilter.java
===================================================================
--- /Users/jdecastro/Work/Libraries/tomahawk-1.1.6-src/core/src/main/ java/org/apache/myfaces/webapp/filter/ExtensionsFilter.java (revision 633249) +++ /Users/jdecastro/Work/Libraries/tomahawk-1.1.6-src/core/src/main/ java/org/apache/myfaces/webapp/filter/ExtensionsFilter.java (working copy)
@@ -47,6 +47,8 @@

private String _uploadRepositoryPath = null; //standard temp directory

+    private boolean _enableMultipartWrapper = true;
+
     private ServletContext _servletContext;

public static final String DOFILTER_CALLED = "org.apache.myfaces.component.html.util.ExtensionFilter.doFilterCalled";
@@ -66,6 +68,11 @@

_uploadRepositoryPath = filterConfig.getInitParameter ("uploadRepositoryPath");

+ String enabledWrapperValue = filterConfig.getInitParameter ("enableMultipartWrapper");
+        if(enabledWrapperValue != null) {
+ _enableMultipartWrapper = Boolean.parseBoolean (enabledWrapperValue);
+        }
+
         _servletContext = filterConfig.getServletContext();
     }

@@ -114,7 +121,7 @@
         HttpServletRequest extendedRequest = httpRequest;

         // For multipart/form-data requests
-        if (FileUpload.isMultipartContent(httpRequest)) {
+ if (_enableMultipartWrapper && FileUpload.isMultipartContent (httpRequest)) { extendedRequest = new MultipartRequestWrapper (httpRequest, _uploadMaxFileSize, _uploadThresholdSize, _uploadRepositoryPath);
         }




Reply via email to