This should fail (by throwing) if the file already exists.

I think based on the comment above on line 384 ("create/overwrite") that we might be here for files that already exist, resulting in an IOException.  The old code ignored the failure, but the new code would crash when it needs to continue.