@Override public synchronized void recycle() { stateVerifier.throwIfRecycled(); this.isRecycled = true; if (!isLocked) { toWrap.recycle(); release(); } }
public synchronized void unlock() { stateVerifier.throwIfRecycled(); if (!isLocked) { throw new IllegalStateException("Already unlocked"); } this.isLocked = false; if (isRecycled) { recycle(); } }