question: public void waitForID ( final VaultID id , final long timeoutMS ) { if ( timeoutMS <= 0 ) { throw new IllegalArgumentException ( "Must suppply positive timeout argument" ) ; } final long endTime = timeoutMS + System . currentTimeMillis ( ) ; while ( System . currentTimeMillis ( ) < endTime && ! knowsAbout ( id ) ) { synchronized ( m_waitForLock ) { if ( knowsAbout ( id ) ) { return ; } try { final long waitTime = endTime - System . currentTimeMillis ( ) ; if ( waitTime > 0 ) { m_waitForLock . wait ( waitTime ) ; } } catch ( final InterruptedException e ) { } } } }
target:  Waits until we know about a given vault id. waits for at most timeout milliseconds