This is clearly the right answer butThread T1 calls the notify() method on obj and releases the lock on obj.
I'm wondering if T1 calling obj.notify() is necessary?
With T2 not actually waiting but blocked (Thread.State.BLOCKED)?
Mustn't T2 have been awoken already?