Skip to content

Commit b92238b

Browse files
committed
Add fallback if elements are missing in the data
1 parent 831e0fb commit b92238b

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -184,9 +184,9 @@ private InputStream getXmlDocsViaSru(final StringBuilder srUrl) {
184184
StringWriter stringWriter = new StringWriter();
185185
t.transform(new DOMSource(xmldoc), new StreamResult(stringWriter));
186186

187-
numberOfRecords = getIntegerValueFromElement(xmldoc,"numberOfRecords");
188-
int recordPosition = getIntegerValueFromElement(xmldoc,"recordPosition");
189-
int nextRecordPosition = getIntegerValueFromElement(xmldoc,"nextRecordPosition");
187+
numberOfRecords = getIntegerValueFromElement(xmldoc,"numberOfRecords", 0);
188+
int recordPosition = getIntegerValueFromElement(xmldoc,"recordPosition", 0);
189+
int nextRecordPosition = getIntegerValueFromElement(xmldoc,"nextRecordPosition", totalRecords);
190190

191191
recordsRetrieved = recordsRetrieved + nextRecordPosition - recordPosition;
192192
startRecord = nextRecordPosition; // grenzwert : wenn maximumRcords > als in echt
@@ -199,12 +199,12 @@ private InputStream getXmlDocsViaSru(final StringBuilder srUrl) {
199199
}
200200
}
201201

202-
private int getIntegerValueFromElement(final Document xmlDoc, final String tagName) {
202+
private int getIntegerValueFromElement(final Document xmlDoc, final String tagName, final int fallback) {
203203
Node node = xmlDoc.getElementsByTagName(tagName).item(0);
204204
if (node != null) {
205205
return Integer.parseInt(node.getTextContent());
206206
}
207-
return 0;
207+
return fallback;
208208
}
209209

210210
private InputStream retrieveUrl(StringBuilder srUrl, int startRecord, int maximumRecords) throws IOException {

0 commit comments

Comments
 (0)