KYLIN-2877 fix unclosed prepared statement
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/ae430ed8 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/ae430ed8 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/ae430ed8 Branch: refs/heads/pr70 Commit: ae430ed8745ea36679113f27d745f6cca7898ac0 Parents: ff14042 Author: Li Yang <liy...@apache.org> Authored: Sat Sep 23 08:30:17 2017 +0800 Committer: Li Yang <liy...@apache.org> Committed: Sat Sep 23 08:30:17 2017 +0800 ---------------------------------------------------------------------- .../java/org/apache/kylin/rest/service/QueryService.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/ae430ed8/server-base/src/main/java/org/apache/kylin/rest/service/QueryService.java ---------------------------------------------------------------------- diff --git a/server-base/src/main/java/org/apache/kylin/rest/service/QueryService.java b/server-base/src/main/java/org/apache/kylin/rest/service/QueryService.java index 8a3e6b3..a858fbd 100644 --- a/server-base/src/main/java/org/apache/kylin/rest/service/QueryService.java +++ b/server-base/src/main/java/org/apache/kylin/rest/service/QueryService.java @@ -811,12 +811,13 @@ public class QueryService extends BasicService { if (isPrepareStatementWithParams(sqlRequest)) { - PreparedStatement preparedState = conn.prepareStatement(correctedSql); - processStatementAttr(preparedState, sqlRequest); + stat = conn.prepareStatement(correctedSql); // to be closed in the finally + PreparedStatement prepared = (PreparedStatement) stat; + processStatementAttr(prepared, sqlRequest); for (int i = 0; i < ((PrepareSqlRequest) sqlRequest).getParams().length; i++) { - setParam(preparedState, i + 1, ((PrepareSqlRequest) sqlRequest).getParams()[i]); + setParam(prepared, i + 1, ((PrepareSqlRequest) sqlRequest).getParams()[i]); } - resultSet = preparedState.executeQuery(); + resultSet = prepared.executeQuery(); } else { stat = conn.createStatement(); processStatementAttr(stat, sqlRequest);