cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sergey Beryozkin (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CXF-5837) Upload size limit status 500 for files twice bigger than the limit
Date Fri, 04 Jul 2014 17:04:34 GMT

    [ 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)

Mime
View raw message