最近在使用javax.xml.parsers.DocumentBuilder解析xml文件的时候偶尔会出错:
org.xml.sax.SAXException: FWK005 parse may not be called while parsing.
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:263)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:284)
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:208)
跟踪了一下代码,发现这个异常是在com.sun.org.apache.xerces.internal.parsers.DTDConfiguration.parse(DTDConfiguration.java:546)抛出来的。该段代码结构如下:
if(fParseInProgress) {
throw new XNIException("FWK005 parse may not be called while parsing.");
}
fParseInProgress = true;
// 解析xml文件
finally {
fParseInProgress = false;
}
从程序逻辑来看,如果当前DocumentBuilder对象正在转换文档,此时再次请求转