diff options
author | pcloudy <pcloudy@google.com> | 2017-10-24 14:16:12 +0200 |
---|---|---|
committer | Dmitry Lomov <dslomov@google.com> | 2017-10-24 15:38:45 +0200 |
commit | e28d3af92227cd60287d27d9efa7593ae3e0509f (patch) | |
tree | 7194780ed73ebcd340109029bd4ee7b341a0204b /src/main/java/com/google/devtools/build/lib/vfs/AbstractFileSystem.java | |
parent | 5f5e2b471cef3fdb5e4998c7947cbd657305a48f (diff) |
Automated rollback of commit 5cca89f970bcaddb98972055f2d9539e9d225e67.
*** Reason for rollback ***
Break CI Windows nightly build: https://github.com/bazelbuild/bazel/issues/3927
https://ci.bazel.io/blue/organizations/jenkins/Global%2Fbazel-tests/detail/bazel-tests/314/pipeline/31
*** Original change description ***
Remove synchronization from FileSystem implementations.
PiperOrigin-RevId: 173243523
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/vfs/AbstractFileSystem.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/vfs/AbstractFileSystem.java | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/vfs/AbstractFileSystem.java b/src/main/java/com/google/devtools/build/lib/vfs/AbstractFileSystem.java index d1f3a4cd01..a03ec02fc5 100644 --- a/src/main/java/com/google/devtools/build/lib/vfs/AbstractFileSystem.java +++ b/src/main/java/com/google/devtools/build/lib/vfs/AbstractFileSystem.java @@ -90,16 +90,18 @@ abstract class AbstractFileSystem extends FileSystem { @Override protected OutputStream getOutputStream(Path path, boolean append) throws IOException { - try { - return createFileOutputStream(path, append); - } catch (FileNotFoundException e) { - // Why does it throw a *FileNotFoundException* if it can't write? - // That does not make any sense! And its in a completely different - // format than in other situations, no less! - if (e.getMessage().equals(path + ERR_PERMISSION_DENIED)) { - throw new FileAccessException(e.getMessage()); + synchronized (path) { + try { + return createFileOutputStream(path, append); + } catch (FileNotFoundException e) { + // Why does it throw a *FileNotFoundException* if it can't write? + // That does not make any sense! And its in a completely different + // format than in other situations, no less! + if (e.getMessage().equals(path + ERR_PERMISSION_DENIED)) { + throw new FileAccessException(e.getMessage()); + } + throw e; } - throw e; } } |