Colm O hEigeartaigh created KARAF-6837:
------------------------------------------
Summary: Place a bound on the data read in the rest servlet +
socket collectors
Key: KARAF-6837
URL: https://issues.apache.org/jira/browse/KARAF-6837
Project: Karaf
Issue Type: Task
Components: decanter
Reporter: Colm O hEigeartaigh
This task is to place a bound on the amount of data read in the rest servlet +
socket collectors, as otherwise BufferedReader.readLine() will block until all
data is read, potentially leading to a java.lang.OutOfMemoryError: Java heap
space error.
e.g. I see on sending a large file to the rest servlet collector:
<table>
<tr><th>URI:</th><td>/decanter/collect/rest-servlet</td></tr>
<tr><th>STATUS:</th><td>500</td></tr>
<tr><th>MESSAGE:</th><td>java.lang.OutOfMemoryError: Java heap space</td></tr>
<tr><th>SERVLET:</th><td>org.ops4j.pax.web.service.spi.model.ServletModel-5</td></tr>
<tr><th>CAUSED BY:</th><td>java.lang.OutOfMemoryError: Java heap space</td></tr>
</table>
<pre>java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:3332)
at
java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:124)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:596)
at java.lang.StringBuilder.append(StringBuilder.java:190)
at java.io.BufferedReader.readLine(BufferedReader.java:370)
at java.io.BufferedReader.readLine(BufferedReader.java:389)
at
org.apache.karaf.decanter.collector.rest.servlet.RestServletCollector.doPost(RestServletCollector.java:86)
--
This message was sent by Atlassian Jira
(v8.3.4#803005)