Xiaobo Liao created KYLIN-3908:
----------------------------------
Summary: KylinClient's HttpRequest.releaseConnection is not needed
in retrieveMetaData & executeKylinQuery
Key: KYLIN-3908
URL: https://issues.apache.org/jira/browse/KYLIN-3908
Project: Kylin
Issue Type: Improvement
Components: Driver - JDBC
Affects Versions: v2.5.2
Reporter: Xiaobo Liao
Fix For: Future
In Kylin client's code
[https://github.com/apache/kylin/blob/master/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java]
retrieveMetaData & executeKylinQuery will call
HttpRequestBase.releaseConnection() if the HTTP calls are succeeded, but not
doing so if calls are failed.
According to HttpClient's stack trace, connections are released back to
connection manager after content is consumed. So it is not necessary to call
releaseConnection in retrieveMetaData & executeKylinQuery.
Of course calling releaseConnection is not harmful, but the code now looks
confusing that only calling releaseConnection if responded with 20x.
BasicClientConnectionManager.releaseConnection(ManagedClientConnection, long,
TimeUnit) line: 194
ManagedClientConnectionImpl.releaseConnection() line: 447
BasicManagedEntity.releaseManagedConnection() line: 201
BasicManagedEntity.streamClosed(InputStream) line: 176
EofSensorInputStream.checkClose() line: 237
EofSensorInputStream.close() line: 186
UTF8StreamJsonParser._closeInput() line: 242
UTF8StreamJsonParser(ParserBase).close() line: 385
ObjectMapper._readMapAndClose(JsonParser, JavaType) line: 3745
ObjectMapper.readValue(InputStream, Class<T>) line: 2796
KylinClient.executeKylinQuery(String, List<StatementParameter>,
Map<String,String>) line: 379
KylinClient.executeQuery(String, List<AvaticaParameter>, List<Object>,
Map<String,String>) line: 326
KylinResultSet.execute() line: 69
AvaticaConnection$1.execute() line: 607
KylinMeta.prepareAndExecute(Meta$StatementHandle, String, long, int,
Meta$PrepareCallback) line: 111
KylinConnection(AvaticaConnection).prepareAndExecuteInternal(AvaticaStatement,
String, long) line: 615
KylinStatement(AvaticaStatement).executeInternal(String) line: 148
KylinStatement(AvaticaStatement).executeQuery(String) line: 218
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)