From d5a86439a44b5b4dfd561d8eac73e915f394612d Mon Sep 17 00:00:00 2001 From: Stephen Kraffmiller Date: Fri, 13 Jan 2023 09:34:22 -0500 Subject: [PATCH 1/5] #8724 show child ds in linking dv --- .../java/edu/harvard/iq/dataverse/search/IndexServiceBean.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/edu/harvard/iq/dataverse/search/IndexServiceBean.java b/src/main/java/edu/harvard/iq/dataverse/search/IndexServiceBean.java index e2f2b3adcfd..09cd8a72f0c 100644 --- a/src/main/java/edu/harvard/iq/dataverse/search/IndexServiceBean.java +++ b/src/main/java/edu/harvard/iq/dataverse/search/IndexServiceBean.java @@ -1497,6 +1497,7 @@ private List findAllLinkingDataverses(DvObject dvObject){ dataset = (Dataset) dvObject; linkingDataverses = dsLinkingService.findLinkingDataverses(dataset.getId()); ancestorList = dataset.getOwner().getOwners(); + ancestorList.add(dataset.getOwner()); //to show dataset in linking dv when parent dv is linked } if(dvObject.isInstanceofDataverse()){ dv = (Dataverse) dvObject; From d191cba41ca3665a3fd55e1f0c944a998b56a515 Mon Sep 17 00:00:00 2001 From: Stephen Kraffmiller Date: Wed, 18 Jan 2023 15:43:59 -0500 Subject: [PATCH 2/5] #8724 fix dv linking to self if parent is linked --- .../edu/harvard/iq/dataverse/search/IndexServiceBean.java | 5 +++++ src/test/java/edu/harvard/iq/dataverse/api/LinkIT.java | 8 ++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/search/IndexServiceBean.java b/src/main/java/edu/harvard/iq/dataverse/search/IndexServiceBean.java index 09cd8a72f0c..f9a3cbf5633 100644 --- a/src/main/java/edu/harvard/iq/dataverse/search/IndexServiceBean.java +++ b/src/main/java/edu/harvard/iq/dataverse/search/IndexServiceBean.java @@ -1662,6 +1662,11 @@ private List retrieveDVOPaths(DvObject dvo) { logger.info("failed to find dataverseSegments for dataversePaths for " + SearchFields.SUBTREE + ": " + ex); } List dataversePaths = getDataversePathsFromSegments(dataverseSegments); + if (dataversePaths.size() > 0) { + // removing the dataverse's own id from the paths + // fixes bug where if my parent dv was linked my dv was shown as linked to myself + dataversePaths.remove(dataversePaths.size() - 1); + } /* add linking paths */ diff --git a/src/test/java/edu/harvard/iq/dataverse/api/LinkIT.java b/src/test/java/edu/harvard/iq/dataverse/api/LinkIT.java index 9ac2d2cb7e5..45efda9e230 100644 --- a/src/test/java/edu/harvard/iq/dataverse/api/LinkIT.java +++ b/src/test/java/edu/harvard/iq/dataverse/api/LinkIT.java @@ -174,10 +174,14 @@ public void testDeepLinks() { * Remove this early return when you are ready to work on * https://github.com/IQSS/dataverse/issues/7430 about strange linking * behavior. - */ - if (true) { + * + * + * + * if (true) { return; } + */ + Response createLevel2a = UtilIT.createSubDataverse(UtilIT.getRandomDvAlias() + "-level2a", null, apiToken, level1a); createLevel2a.prettyPrint(); From b4bb357062222b72ebacd48e45c721adc06ee82c Mon Sep 17 00:00:00 2001 From: Stephen Kraffmiller Date: Thu, 19 Jan 2023 10:13:42 -0500 Subject: [PATCH 3/5] #8724 add release note for re-index collections --- .../8724-display-child-datasets-of-linked-dv.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 doc/release-notes/8724-display-child-datasets-of-linked-dv.md diff --git a/doc/release-notes/8724-display-child-datasets-of-linked-dv.md b/doc/release-notes/8724-display-child-datasets-of-linked-dv.md new file mode 100644 index 00000000000..5b1b9c8ae20 --- /dev/null +++ b/doc/release-notes/8724-display-child-datasets-of-linked-dv.md @@ -0,0 +1,14 @@ +Datasets that are part of linked dataverse collections will now be displayed in +their linking dataverse collections. In order to fix the display of collections +that have already been linked you must re-index the linked collections. This +query will provide a list of commands to re-index the effected collections: + +select 'curl http://localhost:8080/api/admin/index/dataverses/' +|| tmp.dvid from (select distinct dataverse_id as dvid +from dataverselinkingdataverse) as tmp + +The result of the query will be a list of re-index commands such as: + +curl http://localhost:8080/api/admin/index/dataverses/633 + +where '633' is the id of the linked collection. From f4e1dc9a4730da1207d3993d0f9b33ddf7635c38 Mon Sep 17 00:00:00 2001 From: Stephen Kraffmiller Date: Thu, 19 Jan 2023 14:10:33 -0500 Subject: [PATCH 4/5] #8724 remove comments --- .../java/edu/harvard/iq/dataverse/api/LinkIT.java | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/src/test/java/edu/harvard/iq/dataverse/api/LinkIT.java b/src/test/java/edu/harvard/iq/dataverse/api/LinkIT.java index 45efda9e230..76e9b7d6bc8 100644 --- a/src/test/java/edu/harvard/iq/dataverse/api/LinkIT.java +++ b/src/test/java/edu/harvard/iq/dataverse/api/LinkIT.java @@ -170,19 +170,6 @@ public void testDeepLinks() { .body("data.total_count", equalTo(1)) .body("data.items[0].name", equalTo(level1a)); - /** - * Remove this early return when you are ready to work on - * https://github.com/IQSS/dataverse/issues/7430 about strange linking - * behavior. - * - * - * - * if (true) { - return; - } - */ - - Response createLevel2a = UtilIT.createSubDataverse(UtilIT.getRandomDvAlias() + "-level2a", null, apiToken, level1a); createLevel2a.prettyPrint(); String level2a = UtilIT.getAliasFromResponse(createLevel2a); From 87c31d7a9a88c432b6ed71a424089aa76346bb78 Mon Sep 17 00:00:00 2001 From: Stephen Kraffmiller Date: Mon, 23 Jan 2023 17:42:42 -0500 Subject: [PATCH 5/5] #8724 fix paths for new dataset --- .../java/edu/harvard/iq/dataverse/search/IndexServiceBean.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/search/IndexServiceBean.java b/src/main/java/edu/harvard/iq/dataverse/search/IndexServiceBean.java index f9a3cbf5633..e73cce8acbe 100644 --- a/src/main/java/edu/harvard/iq/dataverse/search/IndexServiceBean.java +++ b/src/main/java/edu/harvard/iq/dataverse/search/IndexServiceBean.java @@ -1662,7 +1662,7 @@ private List retrieveDVOPaths(DvObject dvo) { logger.info("failed to find dataverseSegments for dataversePaths for " + SearchFields.SUBTREE + ": " + ex); } List dataversePaths = getDataversePathsFromSegments(dataverseSegments); - if (dataversePaths.size() > 0) { + if (dataversePaths.size() > 0 && dvo.isInstanceofDataverse()) { // removing the dataverse's own id from the paths // fixes bug where if my parent dv was linked my dv was shown as linked to myself dataversePaths.remove(dataversePaths.size() - 1);