From 009a8bd57198bf7c44a94b4132e2435045268626 Mon Sep 17 00:00:00 2001 From: Wainer dos Santos Moschetta Date: Thu, 13 Apr 2017 19:54:26 +0000 Subject: [PATCH] Queue: fix unlock mutex on close() On o.l.ackedqueue.Queue.close() method the lock.unlock() call might not execute, leaving a mutex locked. This change ensure that lock.unlock() is always execute by moving its call to the sibling try/catch's finally block. --- logstash-core/src/main/java/org/logstash/ackedqueue/Queue.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/Queue.java b/logstash-core/src/main/java/org/logstash/ackedqueue/Queue.java index 03259d916..060bfbb7d 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/Queue.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/Queue.java @@ -668,8 +668,9 @@ public class Queue implements Closeable { } catch (IOException e) { // log error and ignore logger.error("Queue close releaseLock failed, error={}", e.getMessage()); + } finally { + lock.unlock(); } - lock.unlock(); } } }