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();
}