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.