I couldn't find anything in java.util.concurrent that would work (basically be a variable set of locks to allow multiple simultaneous operations on different files but not the same file).  If you see something I missed let me know.

I had copied this class from SimpleContentPortlet (with a desire to make it part of some portlet utils class somewhere, but that will have to be later).  I noted at one point to switch to a Set and thought I had.  I'll look into that again.  Thanks for catching this.