close OLAPEnumerator at exception bug fix
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/596ab51b Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/596ab51b Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/596ab51b Branch: refs/heads/master-cdh5.7 Commit: 596ab51b4b98ae0923a134ede56c0ceb2f23bb66 Parents: 53b6c8c Author: Hongbin Ma <mahong...@apache.org> Authored: Sat Dec 24 18:19:02 2016 +0800 Committer: Hongbin Ma <mahong...@apache.org> Committed: Tue Dec 27 22:17:30 2016 +0800 ---------------------------------------------------------------------- .../kylin/query/enumerator/OLAPEnumerator.java | 33 +++++++++++++------- 1 file changed, 22 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/596ab51b/query/src/main/java/org/apache/kylin/query/enumerator/OLAPEnumerator.java ---------------------------------------------------------------------- diff --git a/query/src/main/java/org/apache/kylin/query/enumerator/OLAPEnumerator.java b/query/src/main/java/org/apache/kylin/query/enumerator/OLAPEnumerator.java index c7b3c71..e4fc937 100644 --- a/query/src/main/java/org/apache/kylin/query/enumerator/OLAPEnumerator.java +++ b/query/src/main/java/org/apache/kylin/query/enumerator/OLAPEnumerator.java @@ -61,20 +61,31 @@ public class OLAPEnumerator implements Enumerator<Object[]> { @Override public boolean moveNext() { - if (cursor == null) { - cursor = queryStorage(); - } + try { + if (cursor == null) { + cursor = queryStorage(); + } - if (!cursor.hasNext()) { - return false; - } + if (!cursor.hasNext()) { + return false; + } - ITuple tuple = cursor.next(); - if (tuple == null) { - return false; + ITuple tuple = cursor.next(); + if (tuple == null) { + return false; + } + convertCurrentRow(tuple); + return true; + } catch (Exception e) { + try { + if (cursor != null) { + cursor.close(); + } + } catch (Exception ee) { + logger.info("Error when closing cursor, ignore it", ee); + } + throw e; } - convertCurrentRow(tuple); - return true; } private Object[] convertCurrentRow(ITuple tuple) {