@Override
    public void lock() {
        try {
            lock(-1, null, false);
        } catch (InterruptedException e) {
            throw new IllegalStateException();
        }
    }
@Test
    public void testRemainTimeToLive() {
        RLock lock = redisson.getLock("test-lock:1");
        lock.lock(1, TimeUnit.HOURS);
        assertThat(lock.remainTimeToLive()).isBetween(TimeUnit.HOURS.toMillis(1) - 10, TimeUnit.HOURS.toMillis(1));
        lock.unlock();
        assertThat(lock.remainTimeToLive()).isEqualTo(-2);
        lock.lock();
        assertThat(lock.remainTimeToLive()).isBetween(redisson.getConfig().getLockWatchdogTimeout() - 10, redisson.getConfig().getLockWatchdogTimeout());
    }