This is an automated email from the ASF dual-hosted git repository. lhotari pushed a commit to branch branch-4.16 in repository https://gitbox.apache.org/repos/asf/bookkeeper.git
commit 47c3fc37a075b0bb991f8ecabb91415a04dcb1ec Author: Dmitry Kryukov <[email protected]> AuthorDate: Sat Jul 6 04:12:13 2024 +0300 fix: fix resource leaks in 3 classes (#4449) (cherry picked from commit a164bcae6462f0f7078372cae3549d91989f7383) --- .../server/http/service/DeleteLedgerService.java | 21 +++++++++++---------- .../distributedlog/BKDistributedLogNamespace.java | 7 ++++--- .../distributedlog/impl/BKNamespaceDriver.java | 3 +-- 3 files changed, 16 insertions(+), 15 deletions(-) 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 b4d465650c..57cc127908 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 class DeleteLedgerService implements HttpEndpointService { 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=<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 0a3677d956..8ed2cfeb36 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 class BKDistributedLogNamespace implements Namespace { 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 ea17ed7693..957995b3fd 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 class BKNamespaceDriver implements NamespaceDriver { String namespaceRootPath = namespace.getPath(); HashMap<String, byte[]> result = new HashMap<String, byte[]>(); 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;
