Return-Path: Delivered-To: apmail-cocoon-cvs-archive@www.apache.org Received: (qmail 46903 invoked from network); 3 Nov 2007 10:48:11 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 3 Nov 2007 10:48:11 -0000 Received: (qmail 27190 invoked by uid 500); 3 Nov 2007 10:47:59 -0000 Delivered-To: apmail-cocoon-cvs-archive@cocoon.apache.org Received: (qmail 27117 invoked by uid 500); 3 Nov 2007 10:47:58 -0000 Mailing-List: contact cvs-help@cocoon.apache.org; run by ezmlm Precedence: bulk Reply-To: dev@cocoon.apache.org list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list cvs@cocoon.apache.org Received: (qmail 27106 invoked by uid 99); 3 Nov 2007 10:47:58 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 03 Nov 2007 03:47:58 -0700 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 03 Nov 2007 10:48:10 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id CA83D1A9838; Sat, 3 Nov 2007 03:47:49 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r591580 - /cocoon/trunk/blocks/cocoon-databases/cocoon-databases-impl/src/main/java/org/apache/cocoon/acting/OraAddAction.java Date: Sat, 03 Nov 2007 10:47:49 -0000 To: cvs@cocoon.apache.org From: felixk@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20071103104749.CA83D1A9838@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: felixk Date: Sat Nov 3 03:47:48 2007 New Revision: 591580 URL: http://svn.apache.org/viewvc?rev=591580&view=rev Log: The method creates a database resource (such as a database connection or row set), does not assign it to any fields, pass it to other methods, or return it, and does not appear to close the object on all paths out of the method. Failure to close database resources on all paths out of a method may result in poor performance, and could cause the application to have problems communicating with the database. Modified: cocoon/trunk/blocks/cocoon-databases/cocoon-databases-impl/src/main/java/org/apache/cocoon/acting/OraAddAction.java Modified: cocoon/trunk/blocks/cocoon-databases/cocoon-databases-impl/src/main/java/org/apache/cocoon/acting/OraAddAction.java URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-databases/cocoon-databases-impl/src/main/java/org/apache/cocoon/acting/OraAddAction.java?rev=591580&r1=591579&r2=591580&view=diff ============================================================================== --- cocoon/trunk/blocks/cocoon-databases/cocoon-databases-impl/src/main/java/org/apache/cocoon/acting/OraAddAction.java (original) +++ cocoon/trunk/blocks/cocoon-databases/cocoon-databases-impl/src/main/java/org/apache/cocoon/acting/OraAddAction.java Sat Nov 3 03:47:48 2007 @@ -27,6 +27,7 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import java.sql.Statement; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; @@ -92,17 +93,22 @@ if ("manual".equals(mode)) { String selectQuery = this.getSelectQuery(keys[i]); - ResultSet set = conn.createStatement().executeQuery(selectQuery); - set.next(); - int value = set.getInt("maxid") + 1; - - statement.setInt(currentIndex, value); - - request.setAttribute(keys[i].getAttribute("param"), String.valueOf(value)); - - set.close(); - set.getStatement().close(); - currentIndex++; + final Statement stmnt = conn.createStatement(); + final ResultSet set = stmnt.executeQuery(selectQuery); + try { + set.next(); + int value = set.getInt("maxid") + 1; + + statement.setInt(currentIndex, value); + + request.setAttribute(keys[i].getAttribute("param"), String.valueOf(value)); + + set.getStatement().close(); + set.close(); + currentIndex++; + } finally { + stmnt.close(); + } } else if ("form".equals(mode)) { String parameter = keys[i].getAttribute("param"); request.setAttribute(parameter, request.getParameter(parameter));