From ad7d3457d307955f549219e8e6c99b77da9bc37c Mon Sep 17 00:00:00 2001 From: Nikita Date: Tue, 3 Jun 2014 14:44:41 +0400 Subject: [PATCH] Rewritten changes has back. #17 --- src/main/java/org/redisson/RedissonTopic.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/redisson/RedissonTopic.java b/src/main/java/org/redisson/RedissonTopic.java index 63b37f2d5..df704508b 100644 --- a/src/main/java/org/redisson/RedissonTopic.java +++ b/src/main/java/org/redisson/RedissonTopic.java @@ -69,9 +69,11 @@ public class RedissonTopic extends RedissonObject implements RTopic { RedisPubSubAdapter listener = new RedisPubSubAdapter() { @Override public void subscribed(String channel, long count) { - if (channel.equals(getName())) { + Promise subscribePromise = promise.get(); + //in case of reconnecting, promise might already be completed. + if (channel.equals(getName()) && !subscribePromise.isDone()) { log.debug("subscribed to '{}' channel", getName()); - newPromise.setSuccess(true); + subscribePromise.setSuccess(true); } } };