Andrey is back! :-) On Feb 16, 2011, at 10:56 AM, [email protected] 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); > > >
