Несмотря на то, что 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);
}
}
};
(Отказ от ответственности: не так много, как попытка скомпилировать код.)