@Override public void activate() { // use write lock, since activate() might call flip*() which acquires a write lock itself. lock.writeLock().lock(); try { delegate.activate(); } finally { lock.writeLock().unlock(); } }