cayenne-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrus Adamchik <and...@objectstyle.org>
Subject Re: 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 12:14:47 GMT
Andrey is back! :-)

On Feb 16, 2011, at 10:56 AM, andrey@apache.org wrote:

> 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