diff options
author | Harald Musum <musum@oath.com> | 2018-01-25 12:29:26 +0100 |
---|---|---|
committer | Harald Musum <musum@oath.com> | 2018-01-25 12:29:26 +0100 |
commit | 92ddf9296928f5babf559e175edafe38b5c3afcb (patch) | |
tree | 0637d92818761b9bb30e59efd00e337d9a5721e6 /filedistribution | |
parent | f4f936857e88f74299b0e414a8bbbf001bedd476 (diff) |
Make sure to close file to avoid leaking file descriptors
Diffstat (limited to 'filedistribution')
3 files changed, 19 insertions, 0 deletions
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 dabdba2bfc0..ceb43ab3d51 100644 --- a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceData.java +++ b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceData.java @@ -64,4 +64,10 @@ public abstract class FileReferenceData { * @return number of bytes */ public abstract long size(); + + /** + * Close underlying files + * + */ + public abstract void close(); } diff --git a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceDataBlob.java b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceDataBlob.java index 3759cbe2ef7..94f3a28790e 100644 --- a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceDataBlob.java +++ b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceDataBlob.java @@ -41,4 +41,9 @@ public class FileReferenceDataBlob extends FileReferenceData { public long size() { return content.length; } + + @Override + public void close() { + // no-op + } } diff --git a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/LazyFileReferenceData.java b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/LazyFileReferenceData.java index 1681843a818..397ec48c4b8 100644 --- a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/LazyFileReferenceData.java +++ b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/LazyFileReferenceData.java @@ -49,4 +49,12 @@ public class LazyFileReferenceData extends FileReferenceData { throw new RuntimeException(e); } } + + public void close() { + try { + channel.close(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } } |