illegalmonitorstateexcep

Dlaczego notifyAll() wywołuje IllegalMonitorStateException, gdy jest zsynchronizowana na Integer?

Dlaczego ten program testowy daje java.lang.IllegalMonitorStateException? public class test { static Integer foo = new I ... ava.lang.IllegalMonitorStateException at java.lang.Object.notifyAll(Native Method) at test.main(test.java:6)