From 8a890864f94059308134925ff8e37a95568cfb79 Mon Sep 17 00:00:00 2001 From: Mathias Herberts Date: Fri, 14 Jun 2019 13:25:26 +0200 Subject: [PATCH] Fixes #96 - Removed autoclose of FileChannel. --- .../main/java/org/iq80/leveldb/impl/TableCache.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/leveldb/src/main/java/org/iq80/leveldb/impl/TableCache.java b/leveldb/src/main/java/org/iq80/leveldb/impl/TableCache.java index 34b5055e..58ed1ace 100755 --- a/leveldb/src/main/java/org/iq80/leveldb/impl/TableCache.java +++ b/leveldb/src/main/java/org/iq80/leveldb/impl/TableCache.java @@ -26,6 +26,7 @@ import org.iq80.leveldb.table.MMapTable; import org.iq80.leveldb.table.Table; import org.iq80.leveldb.table.UserComparator; +import org.iq80.leveldb.util.Closeables; import org.iq80.leveldb.util.Finalizer; import org.iq80.leveldb.util.InternalTableIterator; import org.iq80.leveldb.util.Slice; @@ -120,8 +121,10 @@ private TableAndFile(File databaseDir, long fileNumber, UserComparator userCompa { String tableFileName = Filename.tableFileName(fileNumber); File tableFile = new File(databaseDir, tableFileName); - try (FileInputStream fis = new FileInputStream(tableFile); - FileChannel fileChannel = fis.getChannel()) { + FileInputStream fis = null; + try { + fis = new FileInputStream(tableFile); + FileChannel fileChannel = fis.getChannel(); if (Iq80DBFactory.USE_MMAP) { table = new MMapTable(tableFile.getAbsolutePath(), fileChannel, userComparator, verifyChecksums); } @@ -129,6 +132,10 @@ private TableAndFile(File databaseDir, long fileNumber, UserComparator userCompa table = new FileChannelTable(tableFile.getAbsolutePath(), fileChannel, userComparator, verifyChecksums); } } + catch (IOException ioe) { + Closeables.closeQuietly(fis); + throw ioe; + } } public Table getTable()