次のように、Apache HttpClient (3.1) 応答からの応答を解析しようとしています。
try {
int code = mclient.executeMethod(method);
if (code == Status.OK.getCode()) {
st = method.getResponseBodyAsStream();
XMLBean el = doSomething(st);
return el;
}
} catch (HttpException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
method.releaseConnection();
}
これにより、atom パーサーで応答を解析しているときに次の例外が発生します。
org.apache.abdera.parser.ParseException: java.lang.RuntimeException: [was class java.io.IOException] Attempted read on closed stream.
finally ブロックは実際に接続を閉じました。このクローズド ストリーム エラーの原因は何ですか?
SEVERE: The RuntimeException could not be mapped to a response, re-throwing to the HTTP container
org.apache.abdera.parser.ParseException: java.lang.RuntimeException: [was class java.io.IOException] Attempted read on closed stream.
at org.apache.abdera.parser.stax.FOMBuilder.next(FOMBuilder.java:244)
at org.apache.axiom.om.impl.llom.OMElementImpl.getNextOMSibling(OMElementImpl.java:337)
at org.apache.axiom.om.impl.traverse.OMChildrenQNameIterator.next(OMChildrenQNameIterator.java:118)
at org.apache.axiom.om.impl.llom.OMElementImpl.getFirstChildWithName(OMElementImpl.java:275)
at org.apache.abdera.parser.stax.FOMElement.getFirstChild(FOMElement.java:180)