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;