[ https://issues.apache.org/jira/browse/KYLIN-3908?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Shaofeng SHI updated KYLIN-3908: -------------------------------- Fix Version/s: (was: Future) v3.0.0 > 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 > Assignee: Xiaobo Liao > Priority: Trivial > Fix For: v3.0.0 > > > 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)