uploadThresholdSize seems to be ignored
---------------------------------------

                 Key: TOMAHAWK-1420
                 URL: https://issues.apache.org/jira/browse/TOMAHAWK-1420
             Project: MyFaces Tomahawk
          Issue Type: Bug
          Components: File Upload
    Affects Versions: 1.1.8
         Environment: MyFaces Tomahawk, JSF 1.2 - SUN RI on JBoss 5.01 / 
integrated Tomcat
            Reporter: Jochen Reinhardt
            Priority: Critical


uploadThresholdSize seems to be ignored. I set it to 0 to get all files saved 
to disk for further processing in EJB. I also tried with 1 and 1k - but the 
result stayed the same. I got OutOfMemoryError when uploading huge files as 
HtmlFileUploadRenderer after line 180 always creeated an instance of 
UploadedFileDefaultMemoryImpl.

String implementation = ((HtmlInputFileUpload) uiComponent).getStorage();
if( implementation == null || ("memory").equals( implementation ) )
    upFile = new UploadedFileDefaultMemoryImpl( fileItem );
else
    upFile = new UploadedFileDefaultFileImpl( fileItem );

So something seems to be wrong with HtmlInputFileUpload.getStorage() - which 
uses an EL Expression to get the implementation.But I'm not sure how this is 
handled in myFaces. The expression just reads:

ValueExpression vb = getValueExpression("storage");

I'm not sure if that is put correctly in the FacesContext. It only works when I 
use fileUpload's storage attribute to hardcode the strategy to disk in JSF. 

UploadedFileDefaultMemoryImpl always will load the complete file into memory 
(line 42) - no matter what FileItem / ThresholdingOutputStream is used!

int sizeInBytes = (int)fileItem.getSize();
bytes = new byte[sizeInBytes];
fileItem.getInputStream().read(bytes);

I guess that this is causing my memory issues.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to