From 1cd071eae5d4cc10ae9ab3cc4b53eb19d2557ed2 Mon Sep 17 00:00:00 2001 From: Albert Louis Rossi Date: Fri, 28 Jul 2023 08:57:31 -0500 Subject: [PATCH] dcache-xroot: modify mkdir to ignore dir exists on make parent option Motivation: See https://github.com/dCache/dcache/issues/7256 `Possible extension for xrootd` Modification: Catch the file exists exception and ignore it when the `createParents` option is true. Result: Result conforms to vanilla xroot server. Target: master Request: 9.1 Request: 9.0 Request: 8.2 Patch: https://rb.dcache.org/r/14031/ Closes: #7256 Requires-notes: yes Acked-by: Dmitry Acked-by: Tigran --- .../src/main/java/org/dcache/xrootd/door/XrootdDoor.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/modules/dcache-xrootd/src/main/java/org/dcache/xrootd/door/XrootdDoor.java b/modules/dcache-xrootd/src/main/java/org/dcache/xrootd/door/XrootdDoor.java index 61a860c2ed1..31a70400010 100644 --- a/modules/dcache-xrootd/src/main/java/org/dcache/xrootd/door/XrootdDoor.java +++ b/modules/dcache-xrootd/src/main/java/org/dcache/xrootd/door/XrootdDoor.java @@ -774,7 +774,14 @@ public void createDirectory(FsPath path, } if (createParents) { - pnfsHandler.createDirectories(path); + try { + pnfsHandler.createDirectories(path); + } catch (FileExistsCacheException e) { + /* + * The behavior of the xroot vanilla server is to ignore this error + * for createParents. + */ + } } else { pnfsHandler.createPnfsDirectory(path.toString()); }