summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Musum <musum@yahooinc.com>2023-08-14 10:34:12 +0200
committerHarald Musum <musum@yahooinc.com>2023-08-14 10:34:12 +0200
commit380cc01a1d7560c7a0e1404e0a9b0882e849c374 (patch)
treef4f0dedfdcbc142eadd412b44760ccf872a68949
parent50aa4a964bdc5feb246c69eafc6baa367630e85c (diff)
Use try-with-resources for FileReferenceData
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileServer.java13
-rw-r--r--filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceData.java2
2 files changed, 6 insertions, 9 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 f4722a9e7cc..dcd2720ae3e 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
@@ -21,6 +21,7 @@ import com.yahoo.vespa.filedistribution.LazyFileReferenceData;
import com.yahoo.vespa.filedistribution.LazyTemporaryStorageFileReferenceData;
import java.io.File;
import java.io.IOException;
+import java.io.UncheckedIOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.time.Duration;
@@ -121,19 +122,15 @@ public class FileServer {
File file = fileDirectory.getFile(reference);
if ( ! file.exists()) return;
- FileReferenceData fileData =
- uncheck(() -> fileReferenceData(reference, acceptedCompressionTypes, file),
- "For " + reference.value() + ": failed reading file '" + file.getAbsolutePath() + "'" +
- " for sending to '" + target.toString() + "'. ");
-
- try {
+ try (FileReferenceData fileData = fileReferenceData(reference, acceptedCompressionTypes, file)) {
log.log(Level.FINE, () -> "Start serving " + reference.value() + " with file '" + file.getAbsolutePath() + "'");
target.receive(fileData, new ReplayStatus(0, "OK"));
log.log(Level.FINE, () -> "Done serving " + reference.value() + " with file '" + file.getAbsolutePath() + "'");
+ } catch (IOException ioe) {
+ throw new UncheckedIOException("For " + reference.value() + ": failed reading file '" + file.getAbsolutePath() + "'" +
+ " for sending to '" + target.toString() + "'. ", ioe);
} catch (Exception e) {
throw new RuntimeException("Failed serving " + reference.value() + " to '" + target + "': ", e);
- } finally {
- fileData.close();
}
}
diff --git a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceData.java b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceData.java
index 3f83cbea506..87f45db5221 100644
--- a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceData.java
+++ b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceData.java
@@ -10,7 +10,7 @@ import java.nio.ByteBuffer;
*
* @author hmusum
*/
-public abstract class FileReferenceData {
+public abstract class FileReferenceData implements AutoCloseable {
public enum Type { file, compressed }
public enum CompressionType { gzip, lz4, zstd }