public void writerWait(Object notifier,long time){
  try {
synchronized (notifier) {
      writeUnlock();
      notifier.wait(time);
    }
  }
 catch (  InterruptedException e) {
    throw new ConcurrentLockException("write wait interrupted in thread");
  }
 finally {
    writeLock();
  }
}

public void writerWait ( Object notifier , long time ) { try { synchronized ( notifier ) { writeUnlock ( ) ; notifier . wait ( time ) ; } } catch ( InterruptedException e ) { throw new ConcurrentLockException ( "write wait interrupted in thread" ) ; } finally { writeLock ( ) ; } }
release a write lock , wait the given period of time or until notified by notifier , then obtain a regular write lock again . throws concurrentlockexception if the thread gets interrupted ; in that case , the write lock is still held .
