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)

Reply via email to