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

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

Hi Dan

Thanks for the hint, yes, this would work well. In some cases users would be 
able to use the out filters to set this property if needed. I updated the 
interceptor to check the exchange, as the out message is not yet available to 
the JAX-RS code when 413 is reported, JAXRS Out Interceptor won't need to do an 
explicit status check as a result, hope you are OK with it

Sylvain, we should get it fixed now :-), thanks for reporting the issue. 

Thanks, Sergey  

> 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
>             Fix For: 2.7.12, 3.0.1
>
>
> 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)

Reply via email to