aboutsummaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
authorHarald Musum <musum@yahooinc.com>2022-05-25 23:25:34 +0200
committerHarald Musum <musum@yahooinc.com>2022-05-25 23:25:34 +0200
commit689a2612a9f43ef0af2e01ef645b405547640a7c (patch)
treefae77d267cb1c7025fcb87ba1c3d1208ce5f8e1d /configserver
parent5912287f8d1cb92e484d7f7578dbe18900fd8147 (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.java16
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 {