From b4d9e7315e877f516a1828a9b82ad98026573809 Mon Sep 17 00:00:00 2001 From: "michele.artini" Date: Thu, 19 Oct 2023 09:59:17 +0200 Subject: [PATCH] OAI error message --- .../eu/dnetlib/apps/oai/service/CollectorService.java | 10 +++++++++- src/main/resources/templates/email/success.html | 1 + 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/java/eu/dnetlib/apps/oai/service/CollectorService.java b/src/main/java/eu/dnetlib/apps/oai/service/CollectorService.java index d478c5b..a0dc8be 100644 --- a/src/main/java/eu/dnetlib/apps/oai/service/CollectorService.java +++ b/src/main/java/eu/dnetlib/apps/oai/service/CollectorService.java @@ -139,6 +139,14 @@ public class CollectorService { final String xml = HttpFetcher.download(call); final Document doc = DocumentHelper.parseText(xml); + final Node errorNode = doc.selectSingleNode("/*[local-name()='OAI-PMH']/*[local-name()='error']"); + if (errorNode != null) { + final String errorCode = errorNode.valueOf("@code"); + final String errorMessage = errorNode.getText(); + call.setNumberOfRecords(0); + throw new IllegalArgumentException(errorCode + " - " + errorMessage); + } + final List records = doc.selectNodes("//*[local-name()='ListRecords']/*[local-name()='record']"); call.setNumberOfRecords(records.size()); @@ -155,7 +163,7 @@ public class CollectorService { final String rtoken = doc.valueOf("//*[local-name()='resumptionToken']").trim(); url = SimpleUtils.oaiNextUrl(baseUrl, rtoken); } else { - url = ""; + url = null; } } } diff --git a/src/main/resources/templates/email/success.html b/src/main/resources/templates/email/success.html index 2643998..ed2a06a 100644 --- a/src/main/resources/templates/email/success.html +++ b/src/main/resources/templates/email/success.html @@ -11,6 +11,7 @@ I am writing to inform you that your request to collect metadata from the provided URL has been completed successfully.
Request ID:
URL:
+ Collected Records: