cayenne-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From and...@apache.org
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 GMT
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<String> schemas = new ArrayList<String>();
         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);



Mime
View raw message