diff --git a/src/main/java/Bundle.properties b/src/main/java/Bundle.properties
index f22c3cc8d75..389d02712e5 100755
--- a/src/main/java/Bundle.properties
+++ b/src/main/java/Bundle.properties
@@ -1021,6 +1021,9 @@ dataset.share.datasetShare=Share Dataset
dataset.share.datasetShare.tip=Share this dataset on your favorite social media networks.
dataset.share.datasetShare.shareText=View this dataset.
dataset.publish.error.datacite=This dataset may not be published because the DataCite Service is currently inaccessible. Please try again. Does the issue continue to persist?
+dataset.publish.error.DataCiteException=This dataset may not be published because the DataCite Service is currently inaccessible. Please try again. Does the issue continue to persist?
+dataset.publish.error.HandleException=This dataset may not be published because the Handle.net Service is currently inaccessible. Please try again. Does the issue continue to persist?
+dataset.publish.error.EZIDException=This dataset may not be published because the EZID Service is currently inaccessible. Please try again. Does the issue continue to persist?
dataset.publish.error.doi=This dataset may not be published because the DOI update failed.
dataset.delete.error.datacite=Could not deaccession the dataset because the DOI update failed.
diff --git a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/PublishDatasetCommand.java b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/PublishDatasetCommand.java
index c8bde3e6beb..12bb619d450 100644
--- a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/PublishDatasetCommand.java
+++ b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/PublishDatasetCommand.java
@@ -97,8 +97,8 @@ public Dataset execute(CommandContext ctxt) throws CommandException {
}
}
} catch (Throwable e) {
- // TODO add a variant for EZId
- throw new CommandException(ResourceBundle.getBundle("Bundle").getString("dataset.publish.error.datacite"), this);
+ String exceptionName=e.getClass().getSimpleName();
+ throw new CommandException(ResourceBundle.getBundle("Bundle").getString("dataset.publish.error."+exceptionName), this);
}
} else {
throw new IllegalCommandException("This dataset may not be published because its id registry service is not supported.", this);
@@ -220,9 +220,12 @@ public Dataset execute(CommandContext ctxt) throws CommandException {
}
if (idServiceBean!= null && !idServiceBean.registerWhenPublished())
- if (!idServiceBean.publicizeIdentifier(savedDataset))
- throw new CommandException(ResourceBundle.getBundle("Bundle").getString("dataset.publish.error.datacite"), this);
-
+ try{
+ idServiceBean.publicizeIdentifier(savedDataset);
+ }catch (Throwable e) {
+ String exceptionName=e.getClass().getSimpleName();
+ throw new CommandException(ResourceBundle.getBundle("Bundle").getString("dataset.publish.error."+exceptionName), this);
+ }
PrivateUrl privateUrl = ctxt.engine().submit(new GetPrivateUrlCommand(getRequest(), savedDataset));
if (privateUrl != null) {
logger.fine("Deleting Private URL for dataset id " + savedDataset.getId());