Skip to content

Commit d8b70be

Browse files
committed
feat(rocksdb): cleanup the jniLogger when db is closed
1 parent 6e8742a commit d8b70be

1 file changed

Lines changed: 7 additions & 2 deletions

File tree

chainbase/src/main/java/org/tron/common/storage/rocksdb/RocksDbDataSourceImpl.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ public class RocksDbDataSourceImpl extends DbStat implements DbSourceInter<byte[
5757
private String parentPath;
5858
private ReadWriteLock resetDbLock = new ReentrantReadWriteLock();
5959
private static final org.slf4j.Logger rocksDbLogger = LoggerFactory.getLogger(ROCKSDB);
60+
private Logger jniLogger;
6061

6162
public RocksDbDataSourceImpl(String parentPath, String name, Options options) {
6263
this.dataBaseName = name;
@@ -92,6 +93,9 @@ public void closeDB() {
9293
return;
9394
}
9495
database.close();
96+
jniLogger.close();
97+
database = null;
98+
jniLogger = null;
9599
alive = false;
96100
} catch (Exception e) {
97101
logger.error("Failed to find the dbStore file on the closeDB: {}.", dataBaseName, e);
@@ -192,12 +196,13 @@ public void initDB() {
192196
if (dataBaseName == null) {
193197
throw new IllegalArgumentException("No name set to the dbStore");
194198
}
195-
options.setLogger(new Logger(options) {
199+
jniLogger = new Logger(options) {
196200
@Override
197201
protected void log(InfoLogLevel infoLogLevel, String logMsg) {
198202
rocksDbLogger.info("{} {}", dataBaseName, logMsg);
199203
}
200-
});
204+
};
205+
options.setLogger(jniLogger);
201206

202207
try {
203208
logger.debug("Opening database {}.", dataBaseName);

0 commit comments

Comments
 (0)