You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Sergey Beryozkin (JIRA)" <ji...@apache.org> on 2014/07/01 17:15:25 UTC

[jira] [Commented] (CXF-5837) Upload size limit status 500 for files twice bigger than the limit

    [ https://issues.apache.org/jira/browse/CXF-5837?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14048946#comment-14048946 ] 

Sergey Beryozkin commented on CXF-5837:
---------------------------------------

Hi, sure, please create a patch, check outMessage.get(Message.RESPONSE_CODE).

thanks



> Upload size limit status 500 for files twice bigger than the limit
> ------------------------------------------------------------------
>
>                 Key: CXF-5837
>                 URL: https://issues.apache.org/jira/browse/CXF-5837
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-RS
>    Affects Versions: 2.7.11
>         Environment: Java 7, Tomcat 7
>            Reporter: Sylvain Mougenot
>            Priority: Critical
>
> I'm using cxf to manage uploads within jax-rs application.
> I used system properties to adjust behaviour on upload in order to limit size to 10MB (10 * 1024 * 1024 = .10 485 760)
> {code}
> java ....
> -Dorg.apache.cxf.io.CachedOutputStream.Threshold=102400
> -Dorg.apache.cxf.io.CachedOutputStream.OutputDirectory=/temp/upload
> -Dorg.apache.cxf.io.CachedOutputStream.MaxSize=10485760
> ...
> {code}
> This works fine if the user send *files a little too big* (11MB for exemple) : \\ client gets the http *status 413*.
> But if the sent file is more than *twice bigger* than the limit (21MB for exemple) it fails :\\
> client gets the http *status 500*.
> The reason why seems to be in *org.apache.cxf.transport.http.AbstractHTTPDestination#cacheInput*.
> In my opinion, before writing the response out, this method is responsible for reading the remains of the request.
> But it does it the same way as when it tried to read attachement file : with size limitations. Because the remaining datas are again bigger than the limit (the file is more than twice too big) have an error.
> Maybe,
> * It would be nice to detect the status 413 (already set for the response).
> So that we could just consume the data (without caching it at all).
> * It would also be nice no to limit this consuming to a multiple of the value "MaxSize" setting, not a hard coded 16MB. See code line 549 : IOUtils.consume(in, 16 * 1024 * 1024) ;)
> Sory,
> I would have liked to submit a pullrequest (or patch) but I've no idea how to find the status code inside the argument (Message outMessage).



--
This message was sent by Atlassian JIRA
(v6.2#6252)