diff --git a/ubo-common/src/main/java/org/mycore/ubo/basket/BasketName2PIDEditor.java b/ubo-common/src/main/java/org/mycore/ubo/basket/BasketName2PIDEditor.java index 55185c58..2809e26e 100644 --- a/ubo-common/src/main/java/org/mycore/ubo/basket/BasketName2PIDEditor.java +++ b/ubo-common/src/main/java/org/mycore/ubo/basket/BasketName2PIDEditor.java @@ -9,10 +9,6 @@ package org.mycore.ubo.basket; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import org.apache.logging.log4j.LogManager; @@ -29,6 +25,10 @@ import org.mycore.ubo.AccessControl; import org.mycore.ubo.DozBibEntryServlet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + /** * Servlet invoked by edit-contributors.xml to * change contributor name and pid entries in the basket of bibliography entries @@ -99,6 +99,12 @@ private void changeContributorInBasket(NameEntry nameEntryFromBasket, NameEntry contributor.removeChildren("nameIdentifier", MCRConstants.MODS_NAMESPACE); for (Element child : nameEntryEdited.getModsName().getChildren()) { + // retain all nameIdentifier elements, except of type 'connection' + String typeAttr = child.getAttributeValue("type"); + if ("nameIdentifier".equals(child.getName()) && "connection".equals(typeAttr)) { + continue; + } + if ("namePart".equals(child.getName()) || "nameIdentifier".equals(child.getName())) { if (!child.getTextTrim().isEmpty()) { contributor.addContent(child.clone());