最近のJDKで
Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,1] Message: JAXP00010001: The parser has encountered more than "64000" entity expansions in this document; this is the limit imposed by the JDK. at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.setInputSource(XMLStreamReaderImpl.java:219) at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.<init>(XMLStreamReaderImpl.java:189) at com.sun.xml.internal.stream.XMLInputFactoryImpl.getXMLStreamReaderImpl(XMLInputFactoryImpl.java:277) at com.sun.xml.internal.stream.XMLInputFactoryImpl.createXMLStreamReader(XMLInputFactoryImpl.java:129) at com.sun.xml.internal.stream.XMLInputFactoryImpl.createXMLEventReader(XMLInputFactoryImpl.java:78)
というエラーが発生するようになりました。
対象バージョンは1.7.0_45などの新しいJDKのようですが、AmazonEC2の
java-1.6.0-openjdk-1.6.0.0-65.1.11.14.57.amzn1.x86_64
でも発生します。これを回避するには
XMLInputFactory factory = XMLInputFactory.newInstance();
「factory」を使いまわさないようにすることですが、aws-java-sdkなどでこれをstaticで使用しているところもあったりするので oracleの jdk 1.6.0_45などに変更してしまうと良いと思います。
検証コードはこちら
https://forums.oracle.com/thread/2594170