diff --git a/doc/release-notes/11206-refresh-landing-page-after-delete.md b/doc/release-notes/11206-refresh-landing-page-after-delete.md new file mode 100644 index 00000000000..9b5b2812b65 --- /dev/null +++ b/doc/release-notes/11206-refresh-landing-page-after-delete.md @@ -0,0 +1,6 @@ +## Bug Fix ## + +JSF UI will no longer display the deleted Dataset/Dataverse. A 1 second delay in the UI page redirect gives Solr time to re-index and remove the deleted object. + +See: +- [#11206](https://github.com/IQSS/dataverse/issues/11206) diff --git a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java index 20617160a1c..a5398a6833f 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java +++ b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java @@ -3130,10 +3130,19 @@ public String deleteDataset() { if (deleteCommandSuccess) { datafileService.finalizeFileDeletes(deleteStorageLocations); JsfHelper.addSuccessMessage(BundleUtil.getStringFromBundle("dataset.message.deleteSuccess")); + solrDelay(); } return "/dataverse.xhtml?alias=" + dataset.getOwner().getAlias() + "&faces-redirect=true"; } + // delay 1 second so solr has time to update the indexes. Without the delay the UI will continue to show the deleted dataset + private void solrDelay() { + try { + Thread.sleep(1000L); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + } public String editFileMetadata(){ // If there are no files selected, return an empty string - which diff --git a/src/main/java/edu/harvard/iq/dataverse/DataversePage.java b/src/main/java/edu/harvard/iq/dataverse/DataversePage.java index 70a1d7b14bb..cd53a71fc92 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DataversePage.java +++ b/src/main/java/edu/harvard/iq/dataverse/DataversePage.java @@ -920,12 +920,21 @@ public String deleteDataverse() { try { commandEngine.submit(cmd); JsfHelper.addSuccessMessage(BundleUtil.getStringFromBundle("dataverse.delete.success")); + solrDelay(); } catch (Exception ex) { logger.log(Level.SEVERE, "Unexpected Exception calling delete dataverse command", ex); JsfHelper.addErrorMessage(BundleUtil.getStringFromBundle("dataverse.delete.failure")); } return "/dataverse.xhtml?alias=" + dataverse.getOwner().getAlias() + "&faces-redirect=true"; } + // delay 1 second so solr has time to update the indexes. Without the delay the UI will continue to show the deleted dataverse + private void solrDelay() { + try { + Thread.sleep(1000L); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + } public String getMetadataBlockPreview(MetadataBlock mdb, int numberOfItems) { /// for beta, we will just preview the first n fields