diff --git a/src/main/java/edu/harvard/iq/dataverse/export/ExportService.java b/src/main/java/edu/harvard/iq/dataverse/export/ExportService.java index b98f88e386f..e7bcf17d44b 100644 --- a/src/main/java/edu/harvard/iq/dataverse/export/ExportService.java +++ b/src/main/java/edu/harvard/iq/dataverse/export/ExportService.java @@ -312,6 +312,7 @@ public void exportAllFormats(Dataset dataset) throws ExportException { } catch (ServiceConfigurationError serviceError) { throw new ExportException("Service configuration error during export. " + serviceError.getMessage()); } catch (RuntimeException e) { + e.printStackTrace(); logger.log(Level.FINE, e.getMessage(), e); throw new ExportException( "Unknown runtime exception exporting metadata. " + (e.getMessage() == null ? "" : e.getMessage())); diff --git a/src/main/java/edu/harvard/iq/dataverse/pidproviders/doi/XmlMetadataTemplate.java b/src/main/java/edu/harvard/iq/dataverse/pidproviders/doi/XmlMetadataTemplate.java index baf8302437d..9ebb346baf8 100644 --- a/src/main/java/edu/harvard/iq/dataverse/pidproviders/doi/XmlMetadataTemplate.java +++ b/src/main/java/edu/harvard/iq/dataverse/pidproviders/doi/XmlMetadataTemplate.java @@ -58,6 +58,9 @@ import edu.harvard.iq.dataverse.util.xml.XmlWriterUtil; import jakarta.enterprise.inject.spi.CDI; import jakarta.json.JsonObject; +import jakarta.json.JsonString; +import jakarta.json.JsonValue; +import jakarta.json.JsonValue.ValueType; public class XmlMetadataTemplate { @@ -621,8 +624,12 @@ private void writeEntityElements(XMLStreamWriter xmlw, String elementName, Strin if (externalIdentifier.isValidIdentifier(orgName)) { isROR = true; JsonObject jo = getExternalVocabularyValue(orgName); - if (jo != null) { - orgName = jo.getString("termName"); + // Some ext. cvv configs store a JsonArray of multiple objects/values. In such cases, we'll leave orgName blank + if (jo != null && jo.containsKey("termName")) { + JsonValue termName = jo.get("termName"); + if (termName.getValueType() == ValueType.STRING) { + orgName = ((JsonString) termName).getString(); + } } }