diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/ExcelFileReader.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/ExcelFileReader.java
index 1350ef9b5d1c948aef2cc9513c2fd8d4c312b6d4..3334e7b431672cbcc3f9ec1300add1906577824e 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/ExcelFileReader.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/ExcelFileReader.java
@@ -24,6 +24,7 @@ import java.util.Arrays;
 import java.util.List;
 
 import org.apache.commons.io.FilenameUtils;
+import org.apache.commons.io.IOUtils;
 import org.apache.log4j.Logger;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
@@ -104,17 +105,24 @@ public class ExcelFileReader
     {
         final String extension = FilenameUtils.getExtension(file.getName()).toLowerCase();
         final FileInputStream stream = new FileInputStream(file);
-        if ("xls".equals(extension))
+        try
         {
-            POIFSFileSystem poifsFileSystem = new POIFSFileSystem(stream);
-            return new HSSFWorkbook(poifsFileSystem);
-        } else if ("xlsx".equals(extension))
-        {
-            return new XSSFWorkbook(stream);
-        } else
+            if ("xls".equals(extension))
+            {
+                POIFSFileSystem poifsFileSystem = new POIFSFileSystem(stream);
+                return new HSSFWorkbook(poifsFileSystem);
+            } else if ("xlsx".equals(extension))
+            {
+                return new XSSFWorkbook(stream);
+            } else
+            {
+                throw new IllegalArgumentException(
+                        "Expected an Excel file with 'xls' or 'xlsx' extension, got "
+                                + file.getName());
+            }
+        } finally
         {
-            throw new IllegalArgumentException(
-                    "Expected an Excel file with 'xls' or 'xlsx' extension, got " + file.getName());
+            IOUtils.closeQuietly(stream);
         }
     }