From d287d674798e8f5092eb369bbc6f06f7329cf61a Mon Sep 17 00:00:00 2001 From: Akhilesh Manjunath Date: Mon, 8 May 2017 13:44:10 -0700 Subject: [PATCH] Fix to not create duplicate queues Added a check in the synchronised block to check if the queue was created by a different thread. --- .../main/java/com/netflix/dyno/queues/redis/RedisQueues.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/dyno-queues-redis/src/main/java/com/netflix/dyno/queues/redis/RedisQueues.java b/dyno-queues-redis/src/main/java/com/netflix/dyno/queues/redis/RedisQueues.java index 197c271..9fce1c5 100644 --- a/dyno-queues-redis/src/main/java/com/netflix/dyno/queues/redis/RedisQueues.java +++ b/dyno-queues-redis/src/main/java/com/netflix/dyno/queues/redis/RedisQueues.java @@ -94,6 +94,10 @@ public DynoQueue get(String queueName) { } synchronized (this) { + queue = this.queues.get(key); + if (queue != null) { + return queue; + } queue = new RedisDynoQueue(redisKeyPrefix, queueName, allShards, shardName, dynoCallExecutor) .withUnackTime(unackTime) .withUnackSchedulerTime(unackHandlerIntervalInMS)