2 ways to find if thread holds lock on object in Java
1)I thought about IllegalMonitorStateException which wait() and notify() methods throw when they get called from non-synchronized context so I said I would call newspaper.wait() and if this call throws exception it means thread in java is not holding lock, otherwise thread holds lock.
2)Another Way is that thread is a static method called holdsLock(Object obj) which returns true or false based on whether threads holds lock on object passed.