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); } }