package io.logz.sawmill.utilities; import io.logz.sawmill.exceptions.ProcessorConfigurationException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; public class DocumentBuilderProvider { private final ThreadLocal<DocumentBuilder> localDocumentBuilder; public DocumentBuilderProvider() { localDocumentBuilder = ThreadLocal.withInitial(() -> { try { return DocumentBuilderFactory.newInstance().newDocumentBuilder(); } catch (ParserConfigurationException e) { throw new ProcessorConfigurationException("failed to create document builder", e); } }); } public DocumentBuilder provide() { return localDocumentBuilder.get(); } }