diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.java index 072960292b8..af7e6fb11b0 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.java @@ -154,11 +154,18 @@ public class SimpleRpcScheduler implements RpcScheduler { } private void consumerLoop(BlockingQueue myQueue) { - while (running) { - try { - CallRunner task = myQueue.take(); - task.run(); - } catch (InterruptedException e) { + boolean interrupted = false; + try { + while (running) { + try { + CallRunner task = myQueue.take(); + task.run(); + } catch (InterruptedException e) { + interrupted = true; + } + } + } finally { + if (interrupted) { Thread.currentThread().interrupt(); } }