CamelExchangeException: JettyClient द्वारा असफल कारण: नकारात्मक प्रारंभिक आकार:

ऊंट 2.8.0 का उपयोग करना जेटी 7.5.4 का उपयोग करना

from("jetty://http://myESBserver/large/resource?matchOnUriPrefix=true&bridgeEndpoint=true&enableMultipartFilter=false&disableStreamCache=true&continuationTimeout=1440000")  
.to("jetty://http://myWEBserver/large/resource?bridgeEndpoint=true&throwExceptionOnFailure=false");

यह मार्ग छोटे संसाधनों पर काम करता है। मैं कैमेल से संशोधन के बिना प्रॉक्सी अनुरोधों से पूछ रहा हूं (एक्सचेंज पूरा होने के बाद लॉगिंग के साथ)। दस्तावेज़ जो मैं प्रॉक्सी करने की कोशिश कर रहा हूं वह काफी बड़ा है (लगभग 7 जी)।

कराफ लॉग:

16:11:15,201 | ERROR | qtp59894565-976  | DefaultErrorHandler              | ?                                   ? | 56 - org.apache.camel.camel-core - 2.8.0 | Failed delivery for exchangeId: ID------46702-1385393650256-95-3. Exhausted after delivery attempt: 1 caught:         org.apache.camel.CamelExchangeException: JettyClient failed cause by: Negative initial size: -1034012518. Exchange[Message: [Body is null]]. Caused by: [java.lang.IllegalArgumentException - Negative initial size: -1034012518]
org.apache.camel.CamelExchangeException: JettyClient failed cause by: Negative initial size: -1034012518. Exchange[Message: [Body is null]]. Caused by: [java.lang.IllegalArgumentException - Negative initial size: -1034012518]
    at org.apache.camel.component.jetty.JettyContentExchange.doTaskCompleted(JettyContentExchange.java:205)[86:org.apache.camel.camel-jetty:2.8.0]
    at org.apache.camel.component.jetty.JettyContentExchange.onException(JettyContentExchange.java:135)[86:org.apache.camel.camel-jetty:2.8.0]
    at org.eclipse.jetty.client.HttpExchange$Listener.onException(HttpExchange.java:1094)[72:org.eclipse.jetty.client:7.5.4.v20111024]
    at org.eclipse.jetty.client.HttpConnection.handle(HttpConnection.java:319)[72:org.eclipse.jetty.client:7.5.4.v20111024]
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:586)[69:org.eclipse.jetty.io:7.5.4.v20111024]
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:44)[69:org.eclipse.jetty.io:7.5.4.v20111024]
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598)[77:org.eclipse.jetty.util:7.5.4.v20111024]
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533)[77:org.eclipse.jetty.util:7.5.4.v20111024]
    at java.lang.Thread.run(Thread.java:662)[:1.6.0_31]
Caused by: java.lang.IllegalArgumentException: Negative initial size: -1034012518
    at java.io.ByteArrayOutputStream.(ByteArrayOutputStream.java:57)[:1.6.0_31]
    at org.eclipse.jetty.client.ContentExchange.onResponseContent(ContentExchange.java:99)[72:org.eclipse.jetty.client:7.5.4.v20111024]
    at org.eclipse.jetty.client.HttpExchange$Listener.onResponseContent(HttpExchange.java:1163)[72:org.eclipse.jetty.client:7.5.4.v20111024]
    at org.eclipse.jetty.client.HttpConnection$Handler.content(HttpConnection.java:657)[72:org.eclipse.jetty.client:7.5.4.v20111024]
    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:801)[74:org.eclipse.jetty.http:7.5.4.v20111024]
    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:224)[74:org.eclipse.jetty.http:7.5.4.v20111024]
    at org.eclipse.jetty.client.HttpConnection.handle(HttpConnection.java:279)[72:org.eclipse.jetty.client:7.5.4.v20111024]
    ... 5 more
0

1 उत्तर

कोड आंतरिक रूप से ByteArrayOutputStream का उपयोग करता है, जो इसके अधिकतम आकार के संदर्भ में Integer.MAX_VALUE - लगभग 2GB तक सीमित है।

इससे पहले एक और बग है कि किसी भी तरह से एक पूर्णांक में डाउनकास्ट किया जा रहा है, लेकिन ByteArrayOutputStream चीज़ मौलिक समस्या प्रतीत होती है।

तो ऐसा लगता है कि आपको या तो डेटा को अलग-अलग हिस्सों में विभाजित करना होगा या एक अलग दृष्टिकोण का उपयोग करना होगा।

0
जोड़ा
मुझे नहीं पता - मैंने इसे स्टैक ट्रेस को देखने से अनुमान लगाया है।
जोड़ा लेखक Robin Green, स्रोत
तो आप मुझे बता रहे हैं कि क्लाइंट ग्राहक के साथ पास करने से पहले स्मृति में पूरी प्रतिक्रिया को हमेशा पढ़ने पर जोर देगी?
जोड़ा लेखक user3058857, स्रोत