This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
I met the same problem when i was doing the project, my understanding may be wrong: it may be thrown when you creating a new record, the instructions told you that you can reuse a deleted one if available, in this case, a DuplicateKeyException will be thrown. if there's no deleted record, you have to create a new one at the back of the file, so this exception will not be thrown. I think you understand what i am talking about...forgive my poor English
I have the B&S assignment, but the data interface is very similar. I decided, that because there is no key, no DuplicateKeyException can be thrown. But that's just my decision, if something else makes more sense to you, do it that way. Just remember to document your decision in your "choices.txt"!