diff options
author | Harald Musum <musum@yahooinc.com> | 2022-05-25 23:25:34 +0200 |
---|---|---|
committer | Harald Musum <musum@yahooinc.com> | 2022-05-25 23:25:34 +0200 |
commit | 689a2612a9f43ef0af2e01ef645b405547640a7c (patch) | |
tree | fae77d267cb1c7025fcb87ba1c3d1208ce5f8e1d /configserver | |
parent | 5912287f8d1cb92e484d7f7578dbe18900fd8147 (diff) |
Make sure to always close file reference data
Otherwise we might end up with temporary files on disk
Diffstat (limited to 'configserver')
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileServer.java | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileServer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileServer.java index 1edcd3c4d31..15bd898c053 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileServer.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileServer.java @@ -124,21 +124,15 @@ public class FileServer { private void serveFile(FileReference reference, Receiver target) { File file = root.getFile(reference); log.log(Level.FINE, () -> "Start serving " + reference + " with file '" + file.getAbsolutePath() + "'"); - boolean success = false; - String errorDescription = "OK"; FileReferenceData fileData = EmptyFileReferenceData.empty(reference, file.getName()); try { fileData = readFileReferenceData(reference); - success = true; - } catch (IOException e) { - errorDescription = "For" + reference.value() + ": failed reading file '" + file.getAbsolutePath() + "'"; - log.warning(errorDescription + " for sending to '" + target.toString() + "'. " + e.toString()); - fileData.close(); - } - - try { - target.receive(fileData, new ReplayStatus(success ? 0 : 1, success ? "OK" : errorDescription)); + target.receive(fileData, new ReplayStatus(0, "OK")); log.log(Level.FINE, () -> "Done serving " + reference.value() + " with file '" + file.getAbsolutePath() + "'"); + } catch (IOException e) { + String errorDescription = "For" + reference.value() + ": failed reading file '" + file.getAbsolutePath() + "'"; + log.warning(errorDescription + " for sending to '" + target.toString() + "'. " + e.getMessage()); + target.receive(fileData, new ReplayStatus(1, errorDescription)); } catch (Exception e) { log.log(Level.WARNING, "Failed serving " + reference + ": " + Exceptions.toMessageString(e)); } finally { |