Wait and notify

In the producer consumer problem.. we have multiple producer and multiple consumer threads.. so here is a question

1. Producer fills up the content and raises notify()

2. As notify was used it invoked a Producer thread
3. Producer realizes that the list isNotEmpty and it waits.

At the end of step 3 what would happen ?

a. Neither any Producer nor any Consumer executes and it hangs
b. The JVM invokes some thread again because there is no lock on the object
c. The behavior cannot be predicted and its up to JVM
d. None of the above