diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/EntryLoggerAllocator.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/EntryLoggerAllocator.java index 70b76aaf376..f2d0c83fff6 100644 --- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/EntryLoggerAllocator.java +++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/EntryLoggerAllocator.java @@ -180,23 +180,24 @@ private synchronized BufferedLogChannel allocateNewLog(File dirForNextEntryLog, } while (testLogFile == null); File newLogFile = new File(dirForNextEntryLog, logFileName); - FileChannel channel = new RandomAccessFile(newLogFile, "rw").getChannel(); + try (FileChannel channel = new RandomAccessFile(newLogFile, "rw").getChannel()) { - BufferedLogChannel logChannel = new BufferedLogChannel(byteBufAllocator, channel, conf.getWriteBufferBytes(), - conf.getReadBufferBytes(), preallocatedLogId, newLogFile, conf.getFlushIntervalInBytes()); - logfileHeader.readerIndex(0); - logChannel.write(logfileHeader); + BufferedLogChannel logChannel = new BufferedLogChannel(byteBufAllocator, channel, conf.getWriteBufferBytes(), + conf.getReadBufferBytes(), preallocatedLogId, newLogFile, conf.getFlushIntervalInBytes()); + logfileHeader.readerIndex(0); + logChannel.write(logfileHeader); - for (File f : ledgersDirs) { - setLastLogId(f, preallocatedLogId); - } + for (File f : ledgersDirs) { + setLastLogId(f, preallocatedLogId); + } - if (suffix.equals(DefaultEntryLogger.LOG_FILE_SUFFIX)) { - recentlyCreatedEntryLogsStatus.createdEntryLog(preallocatedLogId); - } + if (suffix.equals(DefaultEntryLogger.LOG_FILE_SUFFIX)) { + recentlyCreatedEntryLogsStatus.createdEntryLog(preallocatedLogId); + } - log.info("Created new entry log file {} for logId {}.", newLogFile, preallocatedLogId); - return logChannel; + log.info("Created new entry log file {} for logId {}.", newLogFile, preallocatedLogId); + return logChannel; + } } diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/server/http/service/DeleteLedgerService.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/server/http/service/DeleteLedgerService.java index b4d465650c3..57cc127908d 100644 --- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/server/http/service/DeleteLedgerService.java +++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/server/http/service/DeleteLedgerService.java @@ -56,19 +56,20 @@ public HttpServiceResponse handle(HttpServiceRequest request) throws Exception { if (params != null && params.containsKey("ledger_id")) { ClientConfiguration clientConf = new ClientConfiguration(); clientConf.addConfiguration(conf); - BookKeeper bk = new BookKeeper(clientConf); - Long ledgerId = Long.parseLong(params.get("ledger_id")); + try (BookKeeper bk = new BookKeeper(clientConf)) { + Long ledgerId = Long.parseLong(params.get("ledger_id")); - bk.deleteLedger(ledgerId); + bk.deleteLedger(ledgerId); - String output = "Deleted ledger: " + ledgerId; - String jsonResponse = JsonUtil.toJson(output); - if (LOG.isDebugEnabled()) { - LOG.debug("output body:" + jsonResponse); + String output = "Deleted ledger: " + ledgerId; + String jsonResponse = JsonUtil.toJson(output); + if (LOG.isDebugEnabled()) { + LOG.debug("output body:" + jsonResponse); + } + response.setBody(jsonResponse); + response.setCode(HttpServer.StatusCode.OK); + return response; } - response.setBody(jsonResponse); - response.setCode(HttpServer.StatusCode.OK); - return response; } else { response.setCode(HttpServer.StatusCode.NOT_FOUND); response.setBody("Not ledger found. Should provide ledger_id="); diff --git a/stream/distributedlog/core/src/main/java/org/apache/distributedlog/BKDistributedLogNamespace.java b/stream/distributedlog/core/src/main/java/org/apache/distributedlog/BKDistributedLogNamespace.java index 0a3677d9560..8ed2cfeb362 100644 --- a/stream/distributedlog/core/src/main/java/org/apache/distributedlog/BKDistributedLogNamespace.java +++ b/stream/distributedlog/core/src/main/java/org/apache/distributedlog/BKDistributedLogNamespace.java @@ -158,12 +158,13 @@ public void deleteLog(String logName) if (!uri.isPresent()) { throw new LogNotFoundException("Log " + logName + " isn't found."); } - DistributedLogManager dlm = openLogInternal( + try (DistributedLogManager dlm = openLogInternal( uri.get(), logName, Optional.empty(), - Optional.empty()); - dlm.delete(); + Optional.empty())) { + dlm.delete(); + } } @Override diff --git a/stream/distributedlog/core/src/main/java/org/apache/distributedlog/impl/BKNamespaceDriver.java b/stream/distributedlog/core/src/main/java/org/apache/distributedlog/impl/BKNamespaceDriver.java index ea17ed76931..957995b3fd6 100644 --- a/stream/distributedlog/core/src/main/java/org/apache/distributedlog/impl/BKNamespaceDriver.java +++ b/stream/distributedlog/core/src/main/java/org/apache/distributedlog/impl/BKNamespaceDriver.java @@ -533,8 +533,7 @@ public Map enumerateLogsWithMetadataInNamespace() String namespaceRootPath = namespace.getPath(); HashMap result = new HashMap(); ZooKeeperClient zkc = writerZKC; - try { - ZooKeeper zk = Utils.sync(zkc, namespaceRootPath); + try (ZooKeeper zk = Utils.sync(zkc, namespaceRootPath)) { Stat currentStat = zk.exists(namespaceRootPath, false); if (currentStat == null) { return result;