mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-26 22:34:27 +02:00
8287097: (fs) Files::copy requires an undocumented permission when copying from the default file system to a non-default file system
Reviewed-by: chegar, alanb
This commit is contained in:
parent
49e24f0cd8
commit
13596cdf69
3 changed files with 82 additions and 8 deletions
|
@ -110,13 +110,21 @@ class CopyMoveHelper {
|
|||
Files.getFileAttributeView(source, PosixFileAttributeView.class);
|
||||
|
||||
// attributes of source file
|
||||
BasicFileAttributes sourceAttrs = sourcePosixView != null ?
|
||||
Files.readAttributes(source,
|
||||
PosixFileAttributes.class,
|
||||
linkOptions) :
|
||||
Files.readAttributes(source,
|
||||
BasicFileAttributes.class,
|
||||
linkOptions);
|
||||
BasicFileAttributes sourceAttrs = null;
|
||||
if (sourcePosixView != null) {
|
||||
try {
|
||||
sourceAttrs = Files.readAttributes(source,
|
||||
PosixFileAttributes.class,
|
||||
linkOptions);
|
||||
} catch (SecurityException ignored) {
|
||||
// okay to continue if RuntimePermission("accessUserInformation") not granted
|
||||
}
|
||||
}
|
||||
if (sourceAttrs == null)
|
||||
sourceAttrs = Files.readAttributes(source,
|
||||
BasicFileAttributes.class,
|
||||
linkOptions);
|
||||
assert sourceAttrs != null;
|
||||
|
||||
if (sourceAttrs.isSymbolicLink())
|
||||
throw new IOException("Copying of symbolic links not supported");
|
||||
|
@ -157,7 +165,11 @@ class CopyMoveHelper {
|
|||
|
||||
if (sourceAttrs instanceof PosixFileAttributes sourcePosixAttrs &&
|
||||
targetView instanceof PosixFileAttributeView targetPosixView) {
|
||||
targetPosixView.setPermissions(sourcePosixAttrs.permissions());
|
||||
try {
|
||||
targetPosixView.setPermissions(sourcePosixAttrs.permissions());
|
||||
} catch (SecurityException ignored) {
|
||||
// okay to continue if RuntimePermission("accessUserInformation") not granted
|
||||
}
|
||||
}
|
||||
} catch (Throwable x) {
|
||||
// rollback
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue