From 9aa5180c086fc60dfa5be78ce01a9ffe72368e8b Mon Sep 17 00:00:00 2001 From: Andreas Romeyke <andreas.romeyke@slub-dresden.de> Date: Fri, 17 May 2024 11:48:31 +0200 Subject: [PATCH] - try-with-resources closes 'is', but 'is' is stored internally in BufferInputStream to read from --- PLUGIN-INF/metadata_SLUBStoragePlugin.xml | 2 +- .../dps/repository/plugin/storage/nfs/SLUBStoragePlugin.java | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/PLUGIN-INF/metadata_SLUBStoragePlugin.xml b/PLUGIN-INF/metadata_SLUBStoragePlugin.xml index 8b2322b..c8c96b5 100644 --- a/PLUGIN-INF/metadata_SLUBStoragePlugin.xml +++ b/PLUGIN-INF/metadata_SLUBStoragePlugin.xml @@ -83,7 +83,7 @@ </fr:x_form> </pl:initParameters> <pl:description>SLUB Storage Plugin</pl:description> - <pl:version>2.97</pl:version> + <pl:version>2.98</pl:version> <pl:materialType>DIGITAL</pl:materialType> <pl:module>Repository</pl:module> <pl:generalType>TASK</pl:generalType> diff --git a/java/org/slub/rosetta/dps/repository/plugin/storage/nfs/SLUBStoragePlugin.java b/java/org/slub/rosetta/dps/repository/plugin/storage/nfs/SLUBStoragePlugin.java index 981cfe5..be61d39 100644 --- a/java/org/slub/rosetta/dps/repository/plugin/storage/nfs/SLUBStoragePlugin.java +++ b/java/org/slub/rosetta/dps/repository/plugin/storage/nfs/SLUBStoragePlugin.java @@ -479,8 +479,9 @@ public class SLUBStoragePlugin extends AbstractStorageHandler { contractAssertIsRelativePath(storedEntityIdentifier); var absolute_filename = getFullFilePath(storedEntityIdentifier); var absolute_path = Paths.get(absolute_filename); - try (InputStream is = Files.newInputStream(absolute_path)) { - return new BufferedInputStream(is, getBlockSize()); + try { /* do not use try-with-resources, because is is closed */ + InputStream is = Files.newInputStream(absolute_path); + return new BufferedInputStream(is, getBlockSize()); } catch (IOException e) { log.error("SLUBStoragePlugin.retrieveEntity() with storedEntityIdentifier '" + storedEntityIdentifier + "', I/O error, file=" + absolute_filename + " " + e.getMessage()); -- GitLab