6 of one, half a dozen of the other.
As far as what my design was, I now prefer the Peter way.

I like the LockManager, which will knwo who locked what, and control the locking. With this in mind the Data class never has to know. You can have the Data class know, like in your design, I just see that as redundant now.
Good luck, and just remember as long as you justify your design in your design.txt, I am sure you will probably be fine in your design. I can't know for sure though.
Mark