From 4da4e6fad009befb554c17067cfe6e685acf7424 Mon Sep 17 00:00:00 2001 From: DaCool <8727384-DaCool@users.noreply.gitlab.com> Date: Thu, 24 Mar 2022 13:49:17 +0000 Subject: [PATCH] Use the correct "can write" check --- src/com/sheepit/client/Server.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/com/sheepit/client/Server.java b/src/com/sheepit/client/Server.java index c708e36..a16bfbf 100644 --- a/src/com/sheepit/client/Server.java +++ b/src/com/sheepit/client/Server.java @@ -27,6 +27,7 @@ import java.io.OutputStream; import java.io.PrintWriter; import java.io.StringWriter; import java.io.UnsupportedEncodingException; +import java.nio.file.Files; import java.net.*; import java.time.Duration; import java.time.LocalDateTime; @@ -501,17 +502,16 @@ public class Server extends Thread { this.log.debug(String.format("File downloaded at %s/s, written %d bytes", new TransferStats(size, duration.getSeconds() + 1).getAverageSessionSpeed(), written)); this.lastRequestTime = new Date().getTime(); - return Error.Type.OK; } catch (Exception e) { File destFile = new File(destination_); - if (destFile.getParentFile().isDirectory() == false) { - throw new FermeExceptionPathInvalid(); - } - else if (destFile.canWrite() == false) { + if (Files.isWritable(destFile.getParentFile().toPath()) == false) { throw new FermeExceptionNoWritePermission(); } + else if (destFile.getParentFile().isDirectory() == false) { + throw new FermeExceptionPathInvalid(); + } else if (Utils.noFreeSpaceOnDisk(destFile.getParent(), log)) { throw new FermeExceptionNoSpaceLeftOnDevice(); }