diff --git a/dspace-api/src/main/java/org/dspace/identifier/IdentifierServiceImpl.java b/dspace-api/src/main/java/org/dspace/identifier/IdentifierServiceImpl.java index d15414204c..122a9ba3c6 100644 --- a/dspace-api/src/main/java/org/dspace/identifier/IdentifierServiceImpl.java +++ b/dspace-api/src/main/java/org/dspace/identifier/IdentifierServiceImpl.java @@ -88,9 +88,19 @@ public class IdentifierServiceImpl implements IdentifierService { //We need to commit our context because one of the providers might require the handle created above // Next resolve all other services + boolean registered = false; for (IdentifierProvider service : providers) { - service.register(context, object, identifier); + if (service.supports(identifier)) + { + service.register(context, object, identifier); + registered = true; + } + } + if (!registered) + { + throw new IdentifierException("Cannot register identifier: Didn't " + + "find a provider that supports this identifier."); } //Update our item object.update();