diff -ur jakarta-taglibs/standard/src/org/apache/taglibs/standard/tag/common/sql/QueryTagSupport.java jakarta-taglibs-patched/standard/src/org/apache/taglibs/standard/tag/common/sql/QueryTagSupport.java --- jakarta-taglibs/standard/src/org/apache/taglibs/standard/tag/common/sql/QueryTagSupport.java 2006-08-29 00:13:06.000000000 -0800 +++ jakarta-taglibs-patched/standard/src/org/apache/taglibs/standard/tag/common/sql/QueryTagSupport.java 2007-01-23 09:45:39.000000000 -0900 @@ -210,15 +210,24 @@ * if it was from the ResultSet. */ PreparedStatement ps = null; + ResulstSet rs = null; try { ps = conn.prepareStatement(sqlStatement); setParameters(ps, parameters); - ResultSet rs = ps.executeQuery(); + rs = ps.executeQuery(); result = new ResultImpl(rs, startRow, maxRows); } catch (Throwable e) { throw new JspException(sqlStatement + ": " + e.getMessage(), e); } finally { + if (rs != null) { + try { + rs.close(); + } catch (SQLException sqe) { + throw new JspException(sqe.getMessage(), sqe); + } + } + if (ps != null) { try { ps.close(); diff -ur jakarta-taglibs/standard-1.0/src/org/apache/taglibs/standard/tag/common/sql/QueryTagSupport.java jakarta-taglibs-patched/standard-1.0/src/org/apache/taglibs/standard/tag/common/sql/QueryTagSupport.java --- jakarta-taglibs/standard-1.0/src/org/apache/taglibs/standard/tag/common/sql/QueryTagSupport.java 2006-08-29 00:13:56.000000000 -0800 +++ jakarta-taglibs-patched/standard-1.0/src/org/apache/taglibs/standard/tag/common/sql/QueryTagSupport.java 2007-01-23 09:49:04.000000000 -0900 @@ -209,16 +209,35 @@ * value for isLimitedByMaxRows(); there's no way to check * if it was from the ResultSet. */ + PreparedStatement ps = null; + ResultSet rs = null; try { - PreparedStatement ps = conn.prepareStatement(sqlStatement); + ps = conn.prepareStatement(sqlStatement); setParameters(ps, parameters); - ResultSet rs = ps.executeQuery(); + rs = ps.executeQuery(); result = new ResultImpl(rs, startRow, maxRows); ps.close(); } catch (Throwable e) { throw new JspException(sqlStatement + ": " + e.getMessage(), e); } + finally { + if (rs != null) { + try { + rs.close(); + } catch (SQLException e) { + throw new JspException(e.getMessage(), e); + } + } + + if (ps != null) { + try { + ps.close(); + } catch (SQLException e) { + throw new JspException(e.getMessage(), e); + } + } + } pageContext.setAttribute(var, result, scope); return EVAL_PAGE; }