@Override
    public boolean add(String key) {
        repo.lock(key);
        try {
            return repo.putIfAbsent(key, false) == null;
        } finally {
            repo.unlock(key);
        }
    }
@Test
    public void testAdd() throws Exception {
        // ADD first key
        assertTrue(repo.add(key01));
        assertTrue(cache.containsKey(key01));

        // try to ADD the same key again
        assertFalse(repo.add(key01));
        assertEquals(1, cache.size());

        // try to ADD an other one
        assertTrue(repo.add(key02));
        assertEquals(2, cache.size());
    }