From cb34855f20719e28b09e249fa9ddb28aa14bd44c Mon Sep 17 00:00:00 2001 From: Arnaud de Bossoreille Date: Thu, 29 Oct 2015 13:51:06 +0100 Subject: [PATCH] DS-2831 connections cleanup, context reuse (master) --- .../org/dspace/event/EventServiceImpl.java | 19 ++++++++++++------- .../org/dspace/rest/BitstreamResource.java | 2 ++ .../org/dspace/rest/CollectionsResource.java | 2 ++ 3 files changed, 16 insertions(+), 7 deletions(-) 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) {