Skip to content

Commit 3ab46e5

Browse files
committed
Instantiate classes only once
Resolves #682 (comment) and #682 (comment) and #682 (comment).
1 parent f1980d9 commit 3ab46e5

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

metafacture-io/src/main/java/org/metafacture/io/SruOpener.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
import javax.xml.parsers.DocumentBuilderFactory;
4242
import javax.xml.parsers.ParserConfigurationException;
4343
import javax.xml.transform.Transformer;
44+
import javax.xml.transform.TransformerConfigurationException;
4445
import javax.xml.transform.TransformerException;
4546
import javax.xml.transform.TransformerFactory;
4647
import javax.xml.transform.dom.DOMSource;
@@ -179,15 +180,21 @@ public void process(final String baseUrl) {
179180
}
180181
int recordsRetrieved = 0;
181182
int numberOfRecords = Integer.MAX_VALUE;
183+
final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
184+
final Transformer t;
185+
try {
186+
t = TransformerFactory.newInstance().newTransformer();
187+
}
188+
catch (final TransformerConfigurationException e) {
189+
throw new MetafactureException(e);
190+
}
182191
while (!stopRetrieving && recordsRetrieved < totalRecords && startRecord < numberOfRecords) {
183192

184193
try {
185194
final InputStream inputStreamOfURl = retrieveUrl(srUrl);
186-
final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
187195
final DocumentBuilder docBuilder = factory.newDocumentBuilder();
188196
final Document xmldoc = docBuilder.parse(inputStreamOfURl);
189197

190-
final Transformer t = TransformerFactory.newInstance().newTransformer();
191198
final StringWriter stringWriter = new StringWriter();
192199
t.transform(new DOMSource(xmldoc), new StreamResult(stringWriter));
193200

0 commit comments

Comments
 (0)