Hi Rick,
I am wondering how Andrew and Mark solved this problem? Same way?
I did the Fly By Night Services assignment (I think Mark did too, but I also have a feeling that as a gluton for punishment he may have done one of the new assignments when they were in beta), so I did not have this problem - I had other problems
If I were doing it now, I would do as Jim and Bharat have suggested - have the delete() method unlock the record after deletion. That way the client software does not have to call unlock() after the deletion.
I probably would not have the delete() method call the unlock() method though. I would probably have the unlock() method calling several private methods (validateRecord(), validateUser(), removeLock()...), and then the delete() method would call the appropriate private method, skipping several of the steps that the unlock() method does.
Regards, Andrew