diff --git a/dspace-api/src/main/java/org/dspace/content/CollectionServiceImpl.java b/dspace-api/src/main/java/org/dspace/content/CollectionServiceImpl.java index 9665a8c769..cd4b803aac 100644 --- a/dspace-api/src/main/java/org/dspace/content/CollectionServiceImpl.java +++ b/dspace-api/src/main/java/org/dspace/content/CollectionServiceImpl.java @@ -135,17 +135,6 @@ public class CollectionServiceImpl extends DSpaceObjectServiceImpl i //Add our newly created collection to our community, authorization checks occur in THIS method communityService.addCollection(context, community, newCollection); - //Update our collection so we have a collection identifier - try { - if (handle == null) { - identifierService.register(context, newCollection); - } else { - identifierService.register(context, newCollection, handle); - } - } catch (IllegalStateException | IdentifierException ex) { - throw new IllegalStateException(ex); - } - // create the default authorization policy for collections // of 'anonymous' READ Group anonymousGroup = groupService.findByName(context, Group.ANONYMOUS); @@ -158,6 +147,18 @@ public class CollectionServiceImpl extends DSpaceObjectServiceImpl i authorizeService .createResourcePolicy(context, newCollection, anonymousGroup, null, Constants.DEFAULT_BITSTREAM_READ, null); + collectionDAO.save(context, newCollection); + + //Update our collection so we have a collection identifier + try { + if (handle == null) { + identifierService.register(context, newCollection); + } else { + identifierService.register(context, newCollection, handle); + } + } catch (IllegalStateException | IdentifierException ex) { + throw new IllegalStateException(ex); + } context.addEvent(new Event(Event.CREATE, Constants.COLLECTION, newCollection.getID(), newCollection.getHandle(), @@ -167,7 +168,6 @@ public class CollectionServiceImpl extends DSpaceObjectServiceImpl i "collection_id=" + newCollection.getID()) + ",handle=" + newCollection.getHandle()); - collectionDAO.save(context, newCollection); return newCollection; } diff --git a/dspace-api/src/main/java/org/dspace/content/CommunityServiceImpl.java b/dspace-api/src/main/java/org/dspace/content/CommunityServiceImpl.java index 222acc7445..77f47ce399 100644 --- a/dspace-api/src/main/java/org/dspace/content/CommunityServiceImpl.java +++ b/dspace-api/src/main/java/org/dspace/content/CommunityServiceImpl.java @@ -108,16 +108,6 @@ public class CommunityServiceImpl extends DSpaceObjectServiceImpl imp communityDAO.save(context, newCommunity); - context.addEvent(new Event(Event.CREATE, Constants.COMMUNITY, newCommunity.getID(), newCommunity.getHandle(), - getIdentifiers(context, newCommunity))); - - // if creating a top-level Community, simulate an ADD event at the Site. - if (parent == null) { - context.addEvent(new Event(Event.ADD, Constants.SITE, siteService.findSite(context).getID(), - Constants.COMMUNITY, newCommunity.getID(), newCommunity.getHandle(), - getIdentifiers(context, newCommunity))); - } - try { if (handle == null) { identifierService.register(context, newCommunity); @@ -128,6 +118,16 @@ public class CommunityServiceImpl extends DSpaceObjectServiceImpl imp throw new IllegalStateException(ex); } + context.addEvent(new Event(Event.CREATE, Constants.COMMUNITY, newCommunity.getID(), newCommunity.getHandle(), + getIdentifiers(context, newCommunity))); + + // if creating a top-level Community, simulate an ADD event at the Site. + if (parent == null) { + context.addEvent(new Event(Event.ADD, Constants.SITE, siteService.findSite(context).getID(), + Constants.COMMUNITY, newCommunity.getID(), newCommunity.getHandle(), + getIdentifiers(context, newCommunity))); + } + log.info(LogManager.getHeader(context, "create_community", "community_id=" + newCommunity.getID()) + ",handle=" + newCommunity.getHandle());