Hi, Are you responding with IN message without removing headers? You may want to add headerFilterStrategy to filter unnecessary headers from response.
Thanks, Tomo On 11/21/2016 12:36 AM, Vova Shelgunov wrote:
Hi, I have application with the following jetty configuration: <route id="ds-rest-archive-upload-processor"> <from uri="jetty:https://storage:8443/data/archive?sslContextParametersRef=sslContextParameters&requestBufferSize=32768&responseBufferSize=32768&httpMethodRestrict=POST <https://storage:8443/data/archive?sslContextParametersRef=sslContextParameters&requestBufferSize=32768&responseBufferSize=32768&httpMethodRestrict=POST>" /> <to uri="bean:uploadFromArchiveFileProcessor?method=process" pattern="InOut" /> </route> <bean id="jetty" class="org.apache.camel.component.jetty9.JettyHttpComponent9"> <property name="endpointClass" value="org.apache.camel.component.jetty9.JettyHttpEndpoint9" /> <property name="sslContextParameters" ref="sslContextParameters" /> <property name="useContinuation" value="true" /> <property name="requestBufferSize" value="32768" /> <property name="responseBufferSize" value="32768" /> <property name="threadPool"> <bean class="org.eclipse.jetty.util.thread.QueuedThreadPool"> <constructor-arg index="0" value="1000" /> </bean> </property> <property name="jettyHttpBinding"> <bean class="org.apache.camel.component.jetty.DefaultJettyHttpBinding"> <property name="transferException" value="false" /> </bean> </property> </bean> *I am sending a file to this endpoint. When exception happens inside UploadFromArchiveFileProcessor.process I see the following warning **in the log**:* 2016-11-20 14:15:30,630 WARN in org.eclipse.jetty.server.HttpChannel$CommitCallback.failed(HttpChannel.java:858) - Commit failed java.io.IOException: Response header too large at org.eclipse.jetty.http.HttpGenerator.generateResponse(HttpGenerator.java:402) at org.eclipse.jetty.server.HttpConnection$SendCallback.process(HttpConnection.java:655) at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:246) at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:208) at org.eclipse.jetty.server.HttpConnection.send(HttpConnection.java:471) at org.eclipse.jetty.server.HttpChannel.sendResponse(HttpChannel.java:763) at org.eclipse.jetty.server.HttpChannel.write(HttpChannel.java:801) at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:147) at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:140) at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:383) at java.io.ByteArrayOutputStream.writeTo(ByteArrayOutputStream.java:167) at org.eclipse.jetty.server.Utf8HttpWriter.write(Utf8HttpWriter.java:183) at org.eclipse.jetty.server.HttpWriter.write(HttpWriter.java:71) at java.io.PrintWriter.write(PrintWriter.java:456) at java.io.PrintWriter.write(PrintWriter.java:473) at java.io.PrintWriter.print(PrintWriter.java:603) at org.apache.camel.http.common.DefaultHttpBinding.doWriteDirectResponse(DefaultHttpBinding.java:506) at org.apache.camel.http.common.DefaultHttpBinding.doWriteResponse(DefaultHttpBinding.java:390) at org.apache.camel.http.common.DefaultHttpBinding.writeResponse(DefaultHttpBinding.java:322) at org.apache.camel.component.jetty.CamelContinuationServlet.doService(CamelContinuationServlet.java:227) at org.apache.camel.http.common.CamelServlet.service(CamelServlet.java:74) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669) at org.apache.camel.component.jetty.CamelFilterWrapper.doFilter(CamelFilterWrapper.java:45) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) at org.eclipse.jetty.server.Server.handleAsync(Server.java:549) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:318) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257) at org.eclipse.jetty.io <http://org.eclipse.jetty.io>.AbstractConnection$2.run(AbstractConnection.java:544) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) at java.lang.Thread.run(Thread.java:745) Caused by: java.nio.BufferOverflowException at java.nio.Buffer.nextPutIndex(Buffer.java:521) at java.nio.HeapByteBuffer.put(HeapByteBuffer.java:169) at org.eclipse.jetty.http.HttpGenerator.putSanitisedValue(HttpGenerator.java:1066) at org.eclipse.jetty.http.HttpGenerator.putTo(HttpGenerator.java:1088) at org.eclipse.jetty.http.HttpGenerator.generateHeaders(HttpGenerator.java:705) at org.eclipse.jetty.http.HttpGenerator.generateResponse(HttpGenerator.java:387) ... 38 more *When an exception does not occur and I do not add the following code to finally block of process method, I will see the same exception and route will fail.* message.removeHeader(attachment.getName()); *I tried to debug HttpGenerator.generateHeaders and see that inside _info._httpFields there are following fields:* I do not know what file from the request is doing here, but it is strange at least. Could you please say how to avoid such exceptions? Also strange thing that file content is stored in memory, so I am not able to upload large file.