Looks like I fixed it myself by writing in parts:
final int partLength = 10000;
Writer writer = response.getWriter();
if (responsePayload != null) {
// write to the response in parts of 10,000 characters to avoid a chunked response
for (int offset = 0; offset < responseLen; offset += partLength) {
int curPartLen = partLength;
if (offset + curPartLen > responseLen) {
curPartLen = responseLen - offset;
}
writer.write(responsePayload, offset, curPartLen);
writer.flush();
}
writer.close();
}