Thanks, everyone, for such great discussion. I passed with a 350/400 (new Urlybird hotel assignment). Some details:
Obviously, I don't have any details of WHY I missed points in GUI and locking. I'm trying to think of some controversial topics in these areas that I might report my choices... I used worker threads in the GUI and popped up a modal dialog during lengthy search operations. I allowed simple sorting of records by clicking the header column of each field. I allowed a checkbox for "bookable only" that filters out records not in the 48 hour time window for booking or already booked. For locking, I stored locks in a single static Map associated with the data file used and handed out new instances of Data to each client, storing a unique ID number and record number pair in the static collection. I also used an auto-timeout method (TimerTask) for automatically unlocking records after a few minutes. Thanks again. Good luck to others.