Skip to content

Commit 89813b7

Browse files
authored
Merge pull request #11782 from QualitativeDataRepository/QDR-DataCiteRORErrorHandling
Improve DataCiteXML robustness w.r.t. ROR
2 parents 4d56fc3 + 57e078e commit 89813b7

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

src/main/java/edu/harvard/iq/dataverse/export/ExportService.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,7 @@ public void exportAllFormats(Dataset dataset) throws ExportException {
312312
} catch (ServiceConfigurationError serviceError) {
313313
throw new ExportException("Service configuration error during export. " + serviceError.getMessage());
314314
} catch (RuntimeException e) {
315+
e.printStackTrace();
315316
logger.log(Level.FINE, e.getMessage(), e);
316317
throw new ExportException(
317318
"Unknown runtime exception exporting metadata. " + (e.getMessage() == null ? "" : e.getMessage()));

src/main/java/edu/harvard/iq/dataverse/pidproviders/doi/XmlMetadataTemplate.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,9 @@
5858
import edu.harvard.iq.dataverse.util.xml.XmlWriterUtil;
5959
import jakarta.enterprise.inject.spi.CDI;
6060
import jakarta.json.JsonObject;
61+
import jakarta.json.JsonString;
62+
import jakarta.json.JsonValue;
63+
import jakarta.json.JsonValue.ValueType;
6164

6265
public class XmlMetadataTemplate {
6366

@@ -621,8 +624,12 @@ private void writeEntityElements(XMLStreamWriter xmlw, String elementName, Strin
621624
if (externalIdentifier.isValidIdentifier(orgName)) {
622625
isROR = true;
623626
JsonObject jo = getExternalVocabularyValue(orgName);
624-
if (jo != null) {
625-
orgName = jo.getString("termName");
627+
// Some ext. cvv configs store a JsonArray of multiple objects/values. In such cases, we'll leave orgName blank
628+
if (jo != null && jo.containsKey("termName")) {
629+
JsonValue termName = jo.get("termName");
630+
if (termName.getValueType() == ValueType.STRING) {
631+
orgName = ((JsonString) termName).getString();
632+
}
626633
}
627634
}
628635

0 commit comments

Comments
 (0)