summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
Diffstat (limited to 'java')
-rwxr-xr-xjava/broker/src/main/java/org/apache/qpid/server/queue/SubFlushRunner.java41
1 files changed, 24 insertions, 17 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/server/queue/SubFlushRunner.java b/java/broker/src/main/java/org/apache/qpid/server/queue/SubFlushRunner.java
index 1309e05978..46c1a6af9a 100755
--- a/java/broker/src/main/java/org/apache/qpid/server/queue/SubFlushRunner.java
+++ b/java/broker/src/main/java/org/apache/qpid/server/queue/SubFlushRunner.java
@@ -30,7 +30,7 @@ import org.apache.log4j.Logger;
class SubFlushRunner implements ReadWriteRunnable
{
- private static final Logger _logger = Logger.getLogger(SimpleAMQQueue.class);
+ private static final Logger _logger = Logger.getLogger(SubFlushRunner.class);
private final Subscription _sub;
@@ -46,29 +46,36 @@ class SubFlushRunner implements ReadWriteRunnable
public void run()
{
-
- Thread.currentThread().setName(_name);
-
- boolean complete = false;
+ String originalName = Thread.currentThread().getName();
try
{
- CurrentActor.set(_sub.getLogActor());
- complete = getQueue().flushSubscription(_sub, ITERATIONS);
+ Thread.currentThread().setName(_name);
+
+ boolean complete = false;
+ try
+ {
+ CurrentActor.set(_sub.getLogActor());
+ complete = getQueue().flushSubscription(_sub, ITERATIONS);
+
+ }
+ catch (AMQException e)
+ {
+ _logger.error(e);
+ }
+ finally
+ {
+ CurrentActor.remove();
+ }
+ if (!complete && !_sub.isSuspended())
+ {
+ getQueue().execute(this);
+ }
}
- catch (AMQException e)
- {
- _logger.error(e);
- }
finally
{
- CurrentActor.remove();
+ Thread.currentThread().setName(originalName);
}
- if (!complete && !_sub.isSuspended())
- {
- getQueue().execute(this);
- }
-
}