diff --git a/src/main/java/edu/harvard/iq/dataverse/pidproviders/AbstractPidProvider.java b/src/main/java/edu/harvard/iq/dataverse/pidproviders/AbstractPidProvider.java index df2dc965ed9..469b3505165 100644 --- a/src/main/java/edu/harvard/iq/dataverse/pidproviders/AbstractPidProvider.java +++ b/src/main/java/edu/harvard/iq/dataverse/pidproviders/AbstractPidProvider.java @@ -196,7 +196,7 @@ public DvObject generatePid(DvObject dvObject) { + ") doesn't match that of the provider, id: " + getId()); } } - if (dvObject.getAuthority() == null) { + if (dvObject.getAuthority() == null) { dvObject.setAuthority(getAuthority()); } else { if (!dvObject.getAuthority().equals(getAuthority())) { @@ -209,11 +209,19 @@ public DvObject generatePid(DvObject dvObject) { if (dvObject.getSeparator() == null) { dvObject.setSeparator(getSeparator()); } else { - if (!dvObject.getSeparator().equals(getSeparator())) { + //only check separator if identifier is not null because a null authority would be set above... + //SEK 06/26/25 #11546 + if (dvObject.getIdentifier() != null + && !dvObject.getSeparator().equals(getSeparator())) { logger.warning("The separator of the DvObject (" + dvObject.getSeparator() + ") does not match the configured separator (" + getSeparator() + ")"); throw new IllegalArgumentException("The separator of the DvObject (" + dvObject.getSeparator() + ") doesn't match that of the provider, id: " + getId()); + } else { + //we know it's not null so fill it if it's empty + if (dvObject.getSeparator().isEmpty()) { + dvObject.setSeparator(getSeparator()); + } } } if (dvObject.isInstanceofDataset()) {