This is an automated email from the ASF dual-hosted git repository.
shaofengshi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kylin.git
The following commit(s) were added to refs/heads/master by this push:
new 9ab6c2f KYLIN-3908 KylinClient's HttpRequest.releaseConnection is not
needed in retrieveMetaData & executeKylinQuery (#551)
9ab6c2f is described below
commit 9ab6c2f12bbddd5b402a373f37afca3c8ec9aafe
Author: leonliao <[email protected]>
AuthorDate: Thu Mar 28 22:00:48 2019 +0800
KYLIN-3908 KylinClient's HttpRequest.releaseConnection is not needed in
retrieveMetaData & executeKylinQuery (#551)
KYLIN-3908 httpRequest.releaseConnection enclosed with a finally block
---
.../java/org/apache/kylin/jdbc/KylinClient.java | 39 ++++++++++++----------
1 file changed, 21 insertions(+), 18 deletions(-)
diff --git a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java
b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java
index daf01bd..f59c374 100644
--- a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java
+++ b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java
@@ -298,20 +298,21 @@ public class KylinClient implements IRemoteClient {
addHttpHeaders(get);
HttpResponse response = httpClient.execute(get);
+ try {
+ if (response.getStatusLine().getStatusCode() != 200 &&
response.getStatusLine().getStatusCode() != 201) {
+ throw asIOException(get, response);
+ }
- if (response.getStatusLine().getStatusCode() != 200 &&
response.getStatusLine().getStatusCode() != 201) {
- throw asIOException(get, response);
+ List<TableMetaStub> tableMetaStubs =
jsonMapper.readValue(response.getEntity().getContent(),
+ new TypeReference<List<TableMetaStub>>() {
+ });
+ List<KMetaTable> tables = convertMetaTables(tableMetaStubs);
+ List<KMetaSchema> schemas = convertMetaSchemas(tables);
+ List<KMetaCatalog> catalogs = convertMetaCatalogs(schemas);
+ return new KMetaProject(project, catalogs);
+ } finally {
+ get.releaseConnection();
}
-
- List<TableMetaStub> tableMetaStubs =
jsonMapper.readValue(response.getEntity().getContent(),
- new TypeReference<List<TableMetaStub>>() {
- });
-
- List<KMetaTable> tables = convertMetaTables(tableMetaStubs);
- List<KMetaSchema> schemas = convertMetaSchemas(tables);
- List<KMetaCatalog> catalogs = convertMetaCatalogs(schemas);
- get.releaseConnection();
- return new KMetaProject(project, catalogs);
}
private List<KMetaCatalog> convertMetaCatalogs(List<KMetaSchema> schemas) {
@@ -426,14 +427,16 @@ public class KylinClient implements IRemoteClient {
post.setEntity(requestEntity);
HttpResponse response = httpClient.execute(post);
+ try {
+ if (response.getStatusLine().getStatusCode() != 200 &&
response.getStatusLine().getStatusCode() != 201) {
+ throw asIOException(post, response);
+ }
- if (response.getStatusLine().getStatusCode() != 200 &&
response.getStatusLine().getStatusCode() != 201) {
- throw asIOException(post, response);
+ SQLResponseStub stub =
jsonMapper.readValue(response.getEntity().getContent(), SQLResponseStub.class);
+ return stub;
+ } finally {
+ post.releaseConnection();
}
-
- SQLResponseStub stub =
jsonMapper.readValue(response.getEntity().getContent(), SQLResponseStub.class);
- post.releaseConnection();
- return stub;
}
private List<ColumnMetaData> convertColumnMeta(SQLResponseStub queryResp) {