Return-Path: Delivered-To: apmail-cayenne-commits-archive@www.apache.org Received: (qmail 11474 invoked from network); 16 Feb 2011 08:57:19 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 16 Feb 2011 08:57:19 -0000 Received: (qmail 47705 invoked by uid 500); 16 Feb 2011 08:57:19 -0000 Delivered-To: apmail-cayenne-commits-archive@cayenne.apache.org Received: (qmail 47678 invoked by uid 500); 16 Feb 2011 08:57:18 -0000 Mailing-List: contact commits-help@cayenne.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cayenne.apache.org Delivered-To: mailing list commits@cayenne.apache.org Received: (qmail 47667 invoked by uid 99); 16 Feb 2011 08:57:17 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 16 Feb 2011 08:57:17 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 16 Feb 2011 08:57:16 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 3C1092388A74; Wed, 16 Feb 2011 08:56:56 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1071175 - in /cayenne/main/trunk: framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/dbsync/ framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/ framework/cayenne-jdk1.5-unpublished/... Date: Wed, 16 Feb 2011 08:56:56 -0000 To: commits@cayenne.apache.org From: andrey@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20110216085656.3C1092388A74@eris.apache.org> Author: andrey Date: Wed Feb 16 08:56:55 2011 New Revision: 1071175 URL: http://svn.apache.org/viewvc?rev=1071175&view=rev Log: Plugging some potential resource leaks Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/dbsync/ThrowOnPartialSchemaStrategy.java cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/SQLTemplateAction.java cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/SelectAction.java cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/derby/DerbyPkGenerator.java cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/Oracle8SQLTemplateAction.java cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/sqlite/SQLiteSQLTemplateAction.java cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/action/SaveAsImageAction.java Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/dbsync/ThrowOnPartialSchemaStrategy.java URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/dbsync/ThrowOnPartialSchemaStrategy.java?rev=1071175&r1=1071174&r2=1071175&view=diff ============================================================================== --- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/dbsync/ThrowOnPartialSchemaStrategy.java (original) +++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/dbsync/ThrowOnPartialSchemaStrategy.java Wed Feb 16 08:56:55 2011 @@ -25,6 +25,7 @@ import java.sql.SQLException; import java.util.ArrayList; import java.util.Collection; import java.util.List; + import org.apache.cayenne.CayenneRuntimeException; import org.apache.cayenne.access.DataNode; import org.apache.cayenne.map.DbEntity; @@ -48,21 +49,27 @@ public class ThrowOnPartialSchemaStrateg List schemas = new ArrayList(); DatabaseMetaData md = null; + Connection connection = null; try { - Connection connection = dataNode.getDataSource().getConnection(); - md = connection.getMetaData(); - ResultSet rs = md.getSchemas(); - + connection = dataNode.getDataSource().getConnection(); + try { - while (rs.next()) { - String schemaName = rs.getString(1); - schemas.add(schemaName); + md = connection.getMetaData(); + ResultSet rs = md.getSchemas(); + + try { + while (rs.next()) { + String schemaName = rs.getString(1); + schemas.add(schemaName); + } + } + finally { + rs.close(); } } finally { - rs.close(); + connection.close(); } - connection.close(); analyzer.analyzeSchemas(schemas, md); } catch (Exception e) { Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/SQLTemplateAction.java URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/SQLTemplateAction.java?rev=1071175&r1=1071174&r2=1071175&view=diff ============================================================================== --- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/SQLTemplateAction.java (original) +++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/SQLTemplateAction.java Wed Feb 16 08:56:55 2011 @@ -197,9 +197,7 @@ public class SQLTemplateAction implement } } finally { - if (!iteratedResult) { - statement.close(); - } + statement.close(); } } Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/SelectAction.java URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/SelectAction.java?rev=1071175&r1=1071174&r2=1071175&view=diff ============================================================================== --- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/SelectAction.java (original) +++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/SelectAction.java Wed Feb 16 08:56:55 2011 @@ -68,7 +68,16 @@ public class SelectAction extends BaseSQ SelectTranslator translator = createTranslator(connection); PreparedStatement prepStmt = translator.createStatement(); - ResultSet rs = prepStmt.executeQuery(); + ResultSet rs; + + // need to run in try-catch block to close statement properly if exception happens + try { + rs = prepStmt.executeQuery(); + } + catch (Exception ex) { + prepStmt.close(); + throw ex; + } QueryMetadata md = query.getMetaData(getEntityResolver()); RowDescriptor descriptor = new RowDescriptorBuilder().setColumns( translator.getResultColumns()).getDescriptor( Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/derby/DerbyPkGenerator.java URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/derby/DerbyPkGenerator.java?rev=1071175&r1=1071174&r2=1071175&view=diff ============================================================================== --- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/derby/DerbyPkGenerator.java (original) +++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/derby/DerbyPkGenerator.java Wed Feb 16 08:56:55 2011 @@ -58,9 +58,10 @@ public class DerbyPkGenerator extends Jd } Connection c = node.getDataSource().getConnection(); + PreparedStatement select = null; try { - PreparedStatement select = c.prepareStatement( + select = c.prepareStatement( SELECT_QUERY, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE); @@ -91,6 +92,9 @@ public class DerbyPkGenerator extends Jd return nextId; } finally { + if (select != null) { + select.close(); + } c.close(); } } Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/Oracle8SQLTemplateAction.java URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/Oracle8SQLTemplateAction.java?rev=1071175&r1=1071174&r2=1071175&view=diff ============================================================================== --- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/Oracle8SQLTemplateAction.java (original) +++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/Oracle8SQLTemplateAction.java Wed Feb 16 08:56:55 2011 @@ -95,9 +95,7 @@ class Oracle8SQLTemplateAction extends S // end - code different from super } finally { - if (!iteratedResult) { - statement.close(); - } + statement.close(); } } } Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/sqlite/SQLiteSQLTemplateAction.java URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/sqlite/SQLiteSQLTemplateAction.java?rev=1071175&r1=1071174&r2=1071175&view=diff ============================================================================== --- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/sqlite/SQLiteSQLTemplateAction.java (original) +++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/sqlite/SQLiteSQLTemplateAction.java Wed Feb 16 08:56:55 2011 @@ -91,9 +91,7 @@ class SQLiteSQLTemplateAction extends SQ // end - code different from super } finally { - if (!iteratedResult) { - statement.close(); - } + statement.close(); } } Modified: cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/action/SaveAsImageAction.java URL: http://svn.apache.org/viewvc/cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/action/SaveAsImageAction.java?rev=1071175&r1=1071174&r2=1071175&view=diff ============================================================================== --- cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/action/SaveAsImageAction.java (original) +++ cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/action/SaveAsImageAction.java Wed Feb 16 08:56:55 2011 @@ -74,19 +74,25 @@ public class SaveAsImageAction extends C int status = chooser.showSaveDialog(Application.getFrame()); if (status == JFileChooser.APPROVE_OPTION) { lastDir.updateFromChooser(chooser); - try { - String path = chooser.getSelectedFile().getPath(); - if (!path.endsWith("." + ext)) { - path += "." + ext; - } - + + String path = chooser.getSelectedFile().getPath(); + if (!path.endsWith("." + ext)) { + path += "." + ext; + } + + try { OutputStream out = new FileOutputStream(path); JGraph graph = dataDomainGraphTab.getGraph(); BufferedImage img = graph.getImage(null, 0); - ImageIO.write(img, ext, out); - out.flush(); - out.close(); + + try { + ImageIO.write(img, ext, out); + out.flush(); + } + finally { + out.close(); + } } catch (IOException ex) { logObj.error("Could not save image", ex);