since that is equivalent to lock the entire database, which is not desired. Second, LockManager must be a singleton ( I don't know if you used the singleton pattern, but if you use it, then follow the rest points I stated below). Third, make lock and unlock method synchronized instead of synchronizing on objects. Then, still use wait and notifyall pairs to implement the semaphore.synchronised(hashMap)
Did you send any email message to SunEd after you took essay exam?
Can you tell me what you mean by different users and also how many pages your user docs were?