[ https://issues.apache.org/jira/browse/CAMEL-10577?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Claus Ibsen updated CAMEL-10577: -------------------------------- Summary: Jetty9 producer only supports payloads up hardcoded limit (2MB) (was: Jetty9-Component only supports payloads up hardcoded limit (2MB)) > Jetty9 producer only supports payloads up hardcoded limit (2MB) > --------------------------------------------------------------- > > Key: CAMEL-10577 > URL: https://issues.apache.org/jira/browse/CAMEL-10577 > Project: Camel > Issue Type: Improvement > Components: camel-jetty > Reporter: Christoph Läubrich > Fix For: 2.19.0 > > > Camel-Jetty9 uses > [BufferingResponseListener|http://download.eclipse.org/jetty/9.3.12.v20160915/apidocs/org/eclipse/jetty/client/util/BufferingResponseListener.html] > without any arguments when retriving content from URLs. > This leads to the problem that you can retrive a maximum of 2MiB from a > server, e.g. the following code{noformat}public void configure() throws > Exception { > from("timer://test?repeatCount=1") > .log("Start download...") > > .to("jetty:http://mirror.netcologne.de/apache.org/camel/apache-camel/2.18.1/apache-camel-2.18.1.zip") > .log("Download done!"); > }{noformat} > leads to > {noformat}org.apache.camel.CamelExchangeException: JettyClient failed cause > by: Buffering capacity exceeded. > Exchange[ID-laeubi4core-60072-1481204922807-0-2]. Caused by: > [java.lang.IllegalArgumentException - Buffering capacity exceeded] > at > org.apache.camel.component.jetty9.JettyContentExchange9.doTaskCompleted(JettyContentExchange9.java:156) > at > org.apache.camel.component.jetty9.JettyContentExchange9$2.onComplete(JettyContentExchange9.java:222) > at > org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:193) > at > org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:185) > at > org.eclipse.jetty.client.HttpReceiver.terminateResponse(HttpReceiver.java:456) > at > org.eclipse.jetty.client.HttpReceiver.terminateResponse(HttpReceiver.java:437) > at > org.eclipse.jetty.client.HttpReceiver.responseHeaders(HttpReceiver.java:280) > at > org.eclipse.jetty.client.http.HttpReceiverOverHTTP.headerComplete(HttpReceiverOverHTTP.java:230) > at org.eclipse.jetty.http.HttpParser.parseHeaders(HttpParser.java:1038) > at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:1266) > at > org.eclipse.jetty.client.http.HttpReceiverOverHTTP.parse(HttpReceiverOverHTTP.java:158) > at > org.eclipse.jetty.client.http.HttpReceiverOverHTTP.process(HttpReceiverOverHTTP.java:119) > at > org.eclipse.jetty.client.http.HttpReceiverOverHTTP.receive(HttpReceiverOverHTTP.java:69) > at > org.eclipse.jetty.client.http.HttpChannelOverHTTP.receive(HttpChannelOverHTTP.java:90) > at > org.eclipse.jetty.client.http.HttpConnectionOverHTTP.onFillable(HttpConnectionOverHTTP.java:114) > at > org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) > at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) > at > org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93) > at > org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:246) > at > org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:156) > at > org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) > at > org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) > at java.lang.Thread.run(Thread.java:745) > Caused by: java.lang.IllegalArgumentException: Buffering capacity exceeded > at > org.eclipse.jetty.client.util.BufferingResponseListener.onHeaders(BufferingResponseListener.java:75) > at > org.eclipse.jetty.client.ResponseNotifier.notifyHeaders(ResponseNotifier.java:103) > at > org.eclipse.jetty.client.ResponseNotifier.notifyHeaders(ResponseNotifier.java:95) > at > org.eclipse.jetty.client.HttpReceiver.responseHeaders(HttpReceiver.java:259) > ... 16 more{noformat} > The maximum size should at least be configurable (even though it is not > recommended to do so since it seem to reserve the full buffer space on each > request then). > It might be even better to use > [InputStreamResponseListener|http://download.eclipse.org/jetty/9.3.12.v20160915/apidocs/org/eclipse/jetty/client/util/InputStreamResponseListener.html] > instead to place an input stream in the body. -- This message was sent by Atlassian JIRA (v6.3.4#6332)