From f1fc1f534c5877b5100b954978f9d5053e70db68 Mon Sep 17 00:00:00 2001 From: Graham Triggs Date: Tue, 19 Oct 2010 16:42:57 +0000 Subject: [PATCH] [DS-707] Remove pointless synchronization git-svn-id: http://scm.dspace.org/svn/repo/dspace/trunk@5464 9c30dcfa-912a-0410-8fc2-9e0234be79fd --- .../org/dspace/event/BasicDispatcher.java | 57 +++++++++---------- 1 file changed, 27 insertions(+), 30 deletions(-) diff --git a/dspace-api/src/main/java/org/dspace/event/BasicDispatcher.java b/dspace-api/src/main/java/org/dspace/event/BasicDispatcher.java index 898fa69373..e7ea392313 100644 --- a/dspace-api/src/main/java/org/dspace/event/BasicDispatcher.java +++ b/dspace-api/src/main/java/org/dspace/event/BasicDispatcher.java @@ -116,45 +116,42 @@ public class BasicDispatcher extends Dispatcher // some letters so RDF readers don't mistake it for an integer. String tid = "TX" + Utils.generateKey(); - synchronized(events) + for (Iterator ei = events.iterator(); ei.hasNext();) { - for (Iterator ei = events.iterator(); ei.hasNext();) + Event event = (Event) ei.next(); + event.setDispatcher(getIdentifier()); + event.setTransactionID(tid); + + if (log.isDebugEnabled()) + log.debug("Iterating over " + + String.valueOf(consumers.values().size()) + + " consumers..."); + + for (Iterator ci = consumers.values().iterator(); ci.hasNext();) { - Event event = (Event) ei.next(); - event.setDispatcher(getIdentifier()); - event.setTransactionID(tid); + ConsumerProfile cp = (ConsumerProfile) ci.next(); - if (log.isDebugEnabled()) - log.debug("Iterating over " - + String.valueOf(consumers.values().size()) - + " consumers..."); - - for (Iterator ci = consumers.values().iterator(); ci.hasNext();) + if (event.pass(cp.getFilters())) { - ConsumerProfile cp = (ConsumerProfile) ci.next(); + if (log.isDebugEnabled()) + log.debug("Sending event to \"" + cp.getName() + + "\": " + event.toString()); - if (event.pass(cp.getFilters())) + try { - if (log.isDebugEnabled()) - log.debug("Sending event to \"" + cp.getName() - + "\": " + event.toString()); + cp.getConsumer().consume(ctx, event); - try - { - cp.getConsumer().consume(ctx, event); - - // Record that the event has been consumed by this - // consumer - event.setBitSet(cp.getName()); - } - catch (Exception e) - { - log.error("Consumer(\"" + cp.getName() - + "\").consume threw: " + e.toString(), e); - } + // Record that the event has been consumed by this + // consumer + event.setBitSet(cp.getName()); + } + catch (Exception e) + { + log.error("Consumer(\"" + cp.getName() + + "\").consume threw: " + e.toString(), e); } - } + } }