@Override
    public void unlock() {
        unlockInner(locks);
    }
@Test
    public void testConnectionFailed() throws IOException, InterruptedException {
        RedisProcess redis1 = redisTestMultilockInstance();
        RedisProcess redis2 = redisTestMultilockInstance();
        
        RedissonClient client1 = createClient(redis1.getRedisServerAddressAndPort());
        RedissonClient client2 = createClient(redis2.getRedisServerAddressAndPort());
        
        RLock lock1 = client1.getLock("lock1");
        RLock lock2 = client1.getLock("lock2");
        assertThat(redis2.stop()).isEqualTo(0);
        RLock lock3 = client2.getLock("lock3");
        
        Thread t = new Thread() {
            public void run() {
                RedissonMultiLock lock = new RedissonRedLock(lock1, lock2, lock3);
                lock.lock();
                
                try {
                    Thread.sleep(3000);
                } catch (InterruptedException e) {
                }
                
                lock.unlock();
            };
        };
        t.start();
        t.join(1000);

        RedissonMultiLock lock = new RedissonRedLock(lock1, lock2, lock3);
        lock.lock();
        lock.unlock();
        
        client1.shutdown();
        client2.shutdown();
        
        assertThat(redis1.stop()).isEqualTo(0);
    }