HTTPResponse から XML ドキュメントを解析します。以前は、InputStream から作成された String オブジェクトを使用してパーサーを開始しました。
inputStream がパーサーで直接使用されるように設定を変更すると、OutOfMemory Exceptions が発生します。
奇妙なことに、以前は String の解析は問題なく機能していたので、なぜ InputStream により多くのメモリが必要なのか疑問に思います。
以前のコード:
final byte[] encodedResponseBytes = IOUtils.toByteArray(httpResponse
.getEntity().getContent());
String message = new String(encodedResponseBytes);
parser.setInput(new StringReader(message));
新しいコード:
InputStream stream = httpResponse
.getEntity().getContent();
parser.setInput(stream, null);