This is an automated email from the ASF dual-hosted git repository.

shoothzj pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git


The following commit(s) were added to refs/heads/master by this push:
     new a164bcae64 fix: fix resource leaks in 3 classes  (#4449)
a164bcae64 is described below

commit a164bcae6462f0f7078372cae3549d91989f7383
Author: Dmitry Kryukov <[email protected]>
AuthorDate: Sat Jul 6 04:12:13 2024 +0300

    fix: fix resource leaks in 3 classes  (#4449)
---
 .../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;

Reply via email to