[
https://issues.apache.org/jira/browse/TOMAHAWK-1420?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12714667#action_12714667
]
Leonardo Uribe commented on TOMAHAWK-1420:
------------------------------------------
I have checked the code related to uploadThresholdSize and everything is fine.
This param is passed to org.apache.commons.fileupload.DiskFileUpload. On
commons 1.2.1, this class was deprecated, so maybe it is better to use
org.apache.commons.fileupload.servlet.ServletFileUpload (the patch attached
propose this one). I'm not sure if the patch solves this one, but I'll look in
deep the problem to see if something is wrong in HtmlFileUploadRenderer (note
this requires a full review of the component).
In the documentation related to getStorage says this:
* <p>
* However it appears that this is only half-implemented, and not at all
* documented. It is therefore recommended that this not be used.
* </p>
but I suppose do something like:
t:inputFileUpload storage="disk"
can prevent the OutOfMemory problem.
> 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
> Attachments: TOMAHAWK-1420.patch
>
> Original Estimate: 24h
> Remaining Estimate: 24h
>
> 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.