From 81cb91441e18708461b4cfdf597538398c41bb39 Mon Sep 17 00:00:00 2001 From: Milan Kuchtiak Date: Thu, 19 Mar 2026 11:35:17 +0100 Subject: [PATCH 1/3] Issue 1346: signposting/describedby endpoint returns incorrect XML file --- .../app/rest/signposting/controller/LinksetRestController.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dspace-server-webapp/src/main/java/org/dspace/app/rest/signposting/controller/LinksetRestController.java b/dspace-server-webapp/src/main/java/org/dspace/app/rest/signposting/controller/LinksetRestController.java index 2a940d79aba4..4770b3f886e8 100644 --- a/dspace-server-webapp/src/main/java/org/dspace/app/rest/signposting/controller/LinksetRestController.java +++ b/dspace-server-webapp/src/main/java/org/dspace/app/rest/signposting/controller/LinksetRestController.java @@ -163,7 +163,8 @@ public String getDescribedBy( DSpaceObject object = findObject(context, uuid); DisseminationCrosswalk xwalk = (DisseminationCrosswalk) pluginService.getNamedPlugin(DisseminationCrosswalk.class, xwalkName); - List elements = xwalk.disseminateList(context, object); + // Output valid XML: disseminate using root element as opposed to list + Element elements = xwalk.disseminateElement(context, object); XMLOutputter outputter = new XMLOutputter(Format.getCompactFormat()); return outputter.outputString(elements); } From 13ec3730158ed54752c91a3d1d72597650f66ddc Mon Sep 17 00:00:00 2001 From: Milan Kuchtiak Date: Thu, 19 Mar 2026 11:56:43 +0100 Subject: [PATCH 2/3] test added --- .../rest/signposting/controller/LinksetRestControllerIT.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dspace-server-webapp/src/test/java/org/dspace/app/rest/signposting/controller/LinksetRestControllerIT.java b/dspace-server-webapp/src/test/java/org/dspace/app/rest/signposting/controller/LinksetRestControllerIT.java index a65357f97bfe..33a139d4d446 100644 --- a/dspace-server-webapp/src/test/java/org/dspace/app/rest/signposting/controller/LinksetRestControllerIT.java +++ b/dspace-server-webapp/src/test/java/org/dspace/app/rest/signposting/controller/LinksetRestControllerIT.java @@ -878,6 +878,8 @@ public void getDescribedBy() throws Exception { getClient().perform(get("/signposting/describedby/" + item.getID())) .andExpect(status().isOk()) + .andExpect(content().string( + Matchers.startsWith(" Date: Thu, 19 Mar 2026 13:13:38 +0100 Subject: [PATCH 3/3] resolve Copilot comment --- .../rest/signposting/controller/LinksetRestController.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dspace-server-webapp/src/main/java/org/dspace/app/rest/signposting/controller/LinksetRestController.java b/dspace-server-webapp/src/main/java/org/dspace/app/rest/signposting/controller/LinksetRestController.java index 4770b3f886e8..d8cab99f2eb6 100644 --- a/dspace-server-webapp/src/main/java/org/dspace/app/rest/signposting/controller/LinksetRestController.java +++ b/dspace-server-webapp/src/main/java/org/dspace/app/rest/signposting/controller/LinksetRestController.java @@ -164,9 +164,9 @@ public String getDescribedBy( DisseminationCrosswalk xwalk = (DisseminationCrosswalk) pluginService.getNamedPlugin(DisseminationCrosswalk.class, xwalkName); // Output valid XML: disseminate using root element as opposed to list - Element elements = xwalk.disseminateElement(context, object); + Element element = xwalk.disseminateElement(context, object); XMLOutputter outputter = new XMLOutputter(Format.getCompactFormat()); - return outputter.outputString(elements); + return outputter.outputString(element); } private DSpaceObject findObject(Context context, UUID uuid) {