@@ -256,6 +256,15 @@ private FileAccessTree(FilesEntitlement filesEntitlement, PathLookup pathLookup,
256256 this .exclusivePaths = sortedExclusivePaths ;
257257 this .readPaths = pruneSortedPaths (readPaths ).toArray (new String [0 ]);
258258 this .writePaths = pruneSortedPaths (writePaths ).toArray (new String [0 ]);
259+
260+ logger .debug (
261+ () -> Strings .format (
262+ "Created FileAccessTree with paths: exclusive [%s], read [%s], write [%s]" ,
263+ String .join ("," , this .exclusivePaths ),
264+ String .join ("," , this .readPaths ),
265+ String .join ("," , this .writePaths )
266+ )
267+ );
259268 }
260269
261270 // package private for testing
@@ -303,11 +312,17 @@ public static FileAccessTree withoutExclusivePaths(
303312 }
304313
305314 public boolean canRead (Path path ) {
306- return checkPath (normalizePath (path ), readPaths );
315+ var normalizedPath = normalizePath (path );
316+ var canRead = checkPath (normalizedPath , readPaths );
317+ logger .trace (() -> Strings .format ("checking [%s] (normalized to [%s]) for read: %b" , path , normalizedPath , canRead ));
318+ return canRead ;
307319 }
308320
309321 public boolean canWrite (Path path ) {
310- return checkPath (normalizePath (path ), writePaths );
322+ var normalizedPath = normalizePath (path );
323+ var canWrite = checkPath (normalizedPath , writePaths );
324+ logger .trace (() -> Strings .format ("checking [%s] (normalized to [%s]) for write: %b" , path , normalizedPath , canWrite ));
325+ return canWrite ;
311326 }
312327
313328 /**
@@ -325,7 +340,6 @@ static String normalizePath(Path path) {
325340 }
326341
327342 private boolean checkPath (String path , String [] paths ) {
328- logger .trace (() -> Strings .format ("checking [%s] against [%s]" , path , String .join ("," , paths )));
329343 if (paths .length == 0 ) {
330344 return false ;
331345 }
@@ -343,8 +357,9 @@ private boolean checkPath(String path, String[] paths) {
343357 }
344358
345359 private static boolean isParent (String maybeParent , String path ) {
346- logger .trace (() -> Strings .format ("checking isParent [%s] for [%s]" , maybeParent , path ));
347- return path .startsWith (maybeParent ) && path .startsWith (FILE_SEPARATOR , maybeParent .length ());
360+ var isParent = path .startsWith (maybeParent ) && path .startsWith (FILE_SEPARATOR , maybeParent .length ());
361+ logger .trace (() -> Strings .format ("checking isParent [%s] for [%s]: %b" , maybeParent , path , isParent ));
362+ return isParent ;
348363 }
349364
350365 @ Override
0 commit comments