[ https://issues.apache.org/jira/browse/FILEUPLOAD-110?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jochen Wiedmann resolved FILEUPLOAD-110. ---------------------------------------- Resolution: Fixed Assignee: Jochen Wiedmann The extra bytes are no longer used. > MultipartStream's keep region padding is either unnecessary or untested (and > undocumented) > ------------------------------------------------------------------------------------------ > > Key: FILEUPLOAD-110 > URL: https://issues.apache.org/jira/browse/FILEUPLOAD-110 > Project: Commons FileUpload > Issue Type: Bug > Affects Versions: 1.1 Final > Reporter: Amichai Rothman > Assignee: Jochen Wiedmann > Priority: Minor > Attachments: commons-fileupload-1.1-bug-removed-keep-region.patch > > > MultipartStream has logic and constants related to a "keep region" which, > according to the docs, is > "The amount of data, in bytes, that must be kept in the buffer in order to > detect delimiters reliably." > However, why that region is needed, why the padding is set to 3, and what > makes it more reliable, is undocumented. Furthermore, when setting > KEEP_REGION_PAD to zero (which effectively bypasses the extra keep region > padding mechanism - it simply uses the boundary delimiter size, which makes > sense), all tests pass successfully. > so... either the extra padding is required but whatever it is required for is > untested and undocumented, which should be corrected, or it is indeed > unneeded, in which case all the keep region related code and constants can be > deleted, and the code where the actual delimiters are searched for can be > modified to simply use the boundary length instead of keepRegion. > Note: I suspect the keep region pad may be a patch to compensate for the > skipPreamble() patch which modifies the global boundary, calls a method which > uses it, and the restores the global variable. If this is the case, this can > all be reorganized in a clear and straightforward manner (with no awkward > patches) by using an internal utility method that simply reads data into a > given outputstream until a given delimiter is reached. this can then be used > by readHeaders, readBodyData, discardBodyData, and skipPreamble, all of which > require this same basic underlying functionality. I'd be happy to provide > this code change, if this seems like a correct analysis to you... -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]