Ответ 1
Несмотря на то, что DocumentBuilder.parse, похоже, не мутирует построитель, он выполняет реализацию по умолчанию Sun JDK (на основе Apache Xerces). Эксцентричное дизайнерское решение. Что ты можешь сделать? Я предполагаю использовать ThreadLocal:
private static final ThreadLocal<DocumentBuilder> builderLocal =
new ThreadLocal<DocumentBuilder>() {
@Override protected DocumentBuilder initialValue() {
try {
return
DocumentBuilderFactory
.newInstance(
"xx.MyDocumentBuilderFactory",
getClass().getClassLoader()
).newDocumentBuilder();
} catch (ParserConfigurationException exc) {
throw new IllegalArgumentException(exc);
}
}
};
(Отказ от ответственности: не так, как пытались скомпилировать код.)