@edu.umd.cs.findbugs.annotations.SuppressFBWarnings(value="UW_UNCOND_WAIT",justification="unguarded wait() used intentionally here as part of utility class") public WaitHandler(Object self){
  while (true) {
    try {
synchronized (self) {
        self.wait();
        if (!wasSpurious()) {
          break;
        }
      }
    }
 catch (    InterruptedException e) {
      if (handleInterruptedException(e)) {
        break;
      }
    }
  }
}

@ edu . umd . cs . findbugs . annotations . SuppressFBWarnings ( value = "UW_UNCOND_WAIT" , justification = "unguarded wait() used intentionally here as part of utility class" ) public WaitHandler ( Object self ) { while ( true ) { try { synchronized ( self ) { self . wait ( ) ; if ( ! wasSpurious ( ) ) { break ; } } } catch ( InterruptedException e ) { if ( handleInterruptedException ( e ) ) { break ; } } } }
wait forever , robustly handling " spurious wake "
