diff --git a/dspace-api/src/main/java/org/dspace/event/EventServiceImpl.java b/dspace-api/src/main/java/org/dspace/event/EventServiceImpl.java index 535003aa8d..95a54a6d3f 100644 --- a/dspace-api/src/main/java/org/dspace/event/EventServiceImpl.java +++ b/dspace-api/src/main/java/org/dspace/event/EventServiceImpl.java @@ -292,16 +292,21 @@ public class EventServiceImpl implements EventService { Context ctx = new Context(); - Dispatcher dispatcher = pooledDispatcher.getObject(); + try { + Dispatcher dispatcher = pooledDispatcher.getObject(); - for (Iterator ci = dispatcher.getConsumers() - .iterator(); ci.hasNext();) - { - ConsumerProfile cp = (ConsumerProfile) ci.next(); - if (cp != null) + for (Iterator ci = dispatcher.getConsumers() + .iterator(); ci.hasNext();) { - cp.getConsumer().finish(ctx); + ConsumerProfile cp = (ConsumerProfile) ci.next(); + if (cp != null) + { + cp.getConsumer().finish(ctx); + } } + } catch (Exception e) { + ctx.abort(); + throw e; } } diff --git a/dspace-rest/src/main/java/org/dspace/rest/BitstreamResource.java b/dspace-rest/src/main/java/org/dspace/rest/BitstreamResource.java index 16e114177a..58dd7838aa 100644 --- a/dspace-rest/src/main/java/org/dspace/rest/BitstreamResource.java +++ b/dspace-rest/src/main/java/org/dspace/rest/BitstreamResource.java @@ -628,6 +628,8 @@ public class BitstreamResource extends Resource log.trace("Deleting bitstream from all bundles."); bitstreamService.delete(context, dspaceBitstream); + + context.complete(); } catch (SQLException e) { diff --git a/dspace-rest/src/main/java/org/dspace/rest/CollectionsResource.java b/dspace-rest/src/main/java/org/dspace/rest/CollectionsResource.java index 8ed520c665..4f1906b4bc 100644 --- a/dspace-rest/src/main/java/org/dspace/rest/CollectionsResource.java +++ b/dspace-rest/src/main/java/org/dspace/rest/CollectionsResource.java @@ -518,6 +518,8 @@ public class CollectionsResource extends Resource collectionService.delete(context, dspaceCollection); collectionService.update(context, dspaceCollection); + + context.complete(); } catch (ContextException e) {