Waiting should always be done in a loop that checks a condition while holding the object synchronization monitor. This standalone wait here doesn't accomplish what you want it to. Without checking any condition before waiting, you have no way of knowing whether the wait is necessary.