From 3f43b199eb6fd9a0658317de16d3a9b1159b8266 Mon Sep 17 00:00:00 2001 From: Leonid Andreev Date: Mon, 23 Jan 2023 15:06:34 -0500 Subject: [PATCH 1/2] a 3 line fix for the broken "earliest date" (#9309) --- .../harvest/server/OAIRecordServiceBean.java | 13 +++++++++++++ .../harvest/server/web/servlet/OAIServlet.java | 3 ++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/harvest/server/OAIRecordServiceBean.java b/src/main/java/edu/harvard/iq/dataverse/harvest/server/OAIRecordServiceBean.java index 6cdc4e5c277..3cbfe313504 100644 --- a/src/main/java/edu/harvard/iq/dataverse/harvest/server/OAIRecordServiceBean.java +++ b/src/main/java/edu/harvard/iq/dataverse/harvest/server/OAIRecordServiceBean.java @@ -32,6 +32,7 @@ import javax.inject.Named; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; +import javax.persistence.Query; import javax.persistence.TypedQuery; import javax.persistence.TemporalType; @@ -375,4 +376,16 @@ public List findDeletedOaiRecordsBySetName(String setName) { } } + public Instant getEarliestDate() { + String queryString = "SELECT min(r.lastUpdateTime) FROM OAIRecord r"; + TypedQuery query = em.createQuery(queryString, Date.class); + Date retDate = query.getSingleResult(); + if (retDate != null) { + return retDate.toInstant(); + } + + // if there are no records yet, return the default "now" + return new Date().toInstant(); + } + } diff --git a/src/main/java/edu/harvard/iq/dataverse/harvest/server/web/servlet/OAIServlet.java b/src/main/java/edu/harvard/iq/dataverse/harvest/server/web/servlet/OAIServlet.java index 5d0580708a9..f966b30311b 100644 --- a/src/main/java/edu/harvard/iq/dataverse/harvest/server/web/servlet/OAIServlet.java +++ b/src/main/java/edu/harvard/iq/dataverse/harvest/server/web/servlet/OAIServlet.java @@ -207,7 +207,8 @@ private RepositoryConfiguration createRepositoryConfiguration() { .withDeleteMethod(DeletedRecord.TRANSIENT) .withMaxListIdentifiers(maxListIdentifiers) .withMaxListRecords(maxListRecords) - .withMaxListSets(maxListSets); + .withMaxListSets(maxListSets) + .withEarliestDate(recordService.getEarliestDate()); return repositoryConfiguration; } From 8a4ec02fd5d138f6e3ef8f12128f8628ebdd980d Mon Sep 17 00:00:00 2001 From: landreev Date: Tue, 24 Jan 2023 11:34:15 -0500 Subject: [PATCH 2/2] Update OAIRecordServiceBean.java unused import --- .../iq/dataverse/harvest/server/OAIRecordServiceBean.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/harvest/server/OAIRecordServiceBean.java b/src/main/java/edu/harvard/iq/dataverse/harvest/server/OAIRecordServiceBean.java index 3cbfe313504..5a8f2f41d31 100644 --- a/src/main/java/edu/harvard/iq/dataverse/harvest/server/OAIRecordServiceBean.java +++ b/src/main/java/edu/harvard/iq/dataverse/harvest/server/OAIRecordServiceBean.java @@ -32,7 +32,6 @@ import javax.inject.Named; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; -import javax.persistence.Query; import javax.persistence.TypedQuery; import javax.persistence.TemporalType;