What good does a recursive file lock do when our calling thread already has this same file path open in a different OutputStream?  

Shouldn't this crash on Windows because you can't have two write handles open against the same path name at the same time, especially if you lock the entire file region on each?

Shouldn't this also crash on any POSIX system for the same reason?