private boolean canSuccessorProceed ( ) { if ( predecessor != null && ! predecessor . canSuccessorProceed ( ) ) { return false ; } synchronized ( this ) { while ( responseCount < groups . size ( ) ) { try { wait ( ) ; } catch ( InterruptedException e ) { Thread . currentThread ( ) . interrupt ( ) ; return false ; } } return ! failed ; } }
Check from another ConcurrentGroupServerUpdatePolicy whose plans are meant to execute once this policy s plans are successfully completed .