|
|
@@ -47,6 +47,7 @@ import java.net.MalformedURLException;
|
|
|
import java.net.URL;
|
|
|
import java.nio.file.*;
|
|
|
import java.nio.file.attribute.BasicFileAttributes;
|
|
|
+import java.nio.file.attribute.PosixFileAttributeView;
|
|
|
import java.nio.file.attribute.PosixFileAttributes;
|
|
|
import java.nio.file.attribute.PosixFilePermission;
|
|
|
import java.util.*;
|
|
|
@@ -243,20 +244,23 @@ public class PluginManager {
|
|
|
IOUtils.rm(toLocation);
|
|
|
}
|
|
|
Files.move(binFile, toLocation, StandardCopyOption.ATOMIC_MOVE);
|
|
|
- final Set<PosixFilePermission> perms = new HashSet<PosixFilePermission>();
|
|
|
- perms.add(PosixFilePermission.OWNER_EXECUTE);
|
|
|
- perms.add(PosixFilePermission.GROUP_EXECUTE);
|
|
|
- perms.add(PosixFilePermission.OTHERS_EXECUTE);
|
|
|
- Files.walkFileTree(toLocation, new SimpleFileVisitor<Path>() {
|
|
|
- @Override
|
|
|
- public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
|
|
|
- if (attrs.isRegularFile()) {
|
|
|
-
|
|
|
- Files.setPosixFilePermissions(file, perms);
|
|
|
+ if (Files.getFileStore(toLocation).supportsFileAttributeView(PosixFileAttributeView.class)) {
|
|
|
+ final Set<PosixFilePermission> perms = new HashSet<>();
|
|
|
+ perms.add(PosixFilePermission.OWNER_EXECUTE);
|
|
|
+ perms.add(PosixFilePermission.GROUP_EXECUTE);
|
|
|
+ perms.add(PosixFilePermission.OTHERS_EXECUTE);
|
|
|
+ Files.walkFileTree(toLocation, new SimpleFileVisitor<Path>() {
|
|
|
+ @Override
|
|
|
+ public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
|
|
|
+ if (attrs.isRegularFile()) {
|
|
|
+ Files.setPosixFilePermissions(file, perms);
|
|
|
+ }
|
|
|
+ return FileVisitResult.CONTINUE;
|
|
|
}
|
|
|
- return FileVisitResult.CONTINUE;
|
|
|
- }
|
|
|
- });
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ debug("Skipping posix permissions - filestore doesn't support posix permission");
|
|
|
+ }
|
|
|
debug("Installed " + name + " into " + toLocation.toAbsolutePath());
|
|
|
potentialSitePlugin = false;
|
|
|
}
|