Thank you for the feedback Mahadev:
1) Updated the README.txt
2) I'll revise it to make it more clear.
3) A return is done after the delete in remove() and take(), only the client that deletes the node can return the data, all others will get a NoNodeException. If different exception is thrown then it will exit the method.
The loop can only continue if NoNodeExceptions are thrown, these are only thrown when another client has remove()d or take()n the node.
4) The current patch takes in an acl, I mostly copied this handling from the lock recipe, is there more handling I should add?
I would like to integrate more of the common pieces of the lock recipe into the queue but I think I will leave this to later.