CSE647: Testing and Verification Homework 2 (ver. 15 Sep, 14:20) Due 22 Sep Scott Stoller These questions are about Queue.java, available on the course web page. 1. Consider changing notifyAll to notify in the code for remove(). Is this a good idea? Justify your answer. 2. insert() and remove() in Queue.java sometimes do "unnecessary notifications", i.e., the notified thread finds that the condition it is waiting for is still false and calls wait() again. a. Modify Queue.java to minimize the situations in which unnecessary notifications occur. Document your modifications either with comments in the code or with a separate explanation. Your modified code for Queue.java should be submitted by email; other parts of this assignment can be submitted by email or hardcopy. b. Describe the situations, if any, in which your modified code does unnecessary notifications.