db-torque-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From t.@apache.org
Subject svn commit: r982720 - in /db/torque/village/trunk: src/java/com/workingdogs/village/DataSet.java src/java/com/workingdogs/village/QueryDataSet.java xdocs/changes.xml
Date Thu, 05 Aug 2010 18:14:09 GMT
Author: tv
Date: Thu Aug  5 18:14:08 2010
New Revision: 982720

URL: http://svn.apache.org/viewvc?rev=982720&view=rev
Log:
Fix TORQUE-123: Statement is left open when Exception is thrown in the QueryDataSet constructor

Modified:
    db/torque/village/trunk/src/java/com/workingdogs/village/DataSet.java
    db/torque/village/trunk/src/java/com/workingdogs/village/QueryDataSet.java
    db/torque/village/trunk/xdocs/changes.xml

Modified: db/torque/village/trunk/src/java/com/workingdogs/village/DataSet.java
URL: http://svn.apache.org/viewvc/db/torque/village/trunk/src/java/com/workingdogs/village/DataSet.java?rev=982720&r1=982719&r2=982720&view=diff
==============================================================================
--- db/torque/village/trunk/src/java/com/workingdogs/village/DataSet.java (original)
+++ db/torque/village/trunk/src/java/com/workingdogs/village/DataSet.java Thu Aug  5 18:14:08
2010
@@ -21,12 +21,10 @@ package com.workingdogs.village;
 
 import java.io.ByteArrayOutputStream;
 import java.io.PrintWriter;
-
 import java.sql.Connection;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.Statement;
-
 import java.util.Vector;
 
 /**
@@ -343,20 +341,41 @@ public abstract class DataSet
     {
         releaseRecords();
         this.schema = null;
+        
+        SQLException sqlEx = null;
 
-        if (this.resultSet != null)
+        try 
         {
-            resultSet().close();
-        }
+			if (this.resultSet != null)
+			{
+			    resultSet().close();
+			}
+		}
+        catch (SQLException e)
+        {
+			sqlEx = e;
+		}
 
-        this.resultSet = null;
+		this.resultSet = null;
 
-        if (this.stmt != null)
+        try 
         {
-            this.stmt.close();
-        }
+			if (this.stmt != null)
+			{
+			    this.stmt.close();
+			}
+		} 
+        catch (SQLException e) 
+		{
+			sqlEx = e;
+		}
 
         this.conn = null;
+        
+        if (sqlEx != null)
+        {
+        	throw sqlEx;
+        }
     }
 
     /**

Modified: db/torque/village/trunk/src/java/com/workingdogs/village/QueryDataSet.java
URL: http://svn.apache.org/viewvc/db/torque/village/trunk/src/java/com/workingdogs/village/QueryDataSet.java?rev=982720&r1=982719&r2=982720&view=diff
==============================================================================
--- db/torque/village/trunk/src/java/com/workingdogs/village/QueryDataSet.java (original)
+++ db/torque/village/trunk/src/java/com/workingdogs/village/QueryDataSet.java Thu Aug  5
18:14:08 2010
@@ -76,10 +76,38 @@ public class QueryDataSet
         this.conn = conn;
 
         selectString = new StringBuffer(selectStmt);
-        stmt = conn.createStatement();
-        resultSet = stmt.executeQuery(selectStmt);
-        schema = new Schema();
-        schema.populate(resultSet.getMetaData(), null);
+        
+        try 
+        { 
+        	stmt = conn.createStatement(); 
+        	resultSet = stmt.executeQuery(selectStmt); 
+        	schema = new Schema(); 
+        	schema.populate(resultSet.getMetaData(), null); 
+        } 
+        catch (Exception e) 
+        { 
+        	try 
+        	{
+        		close();
+        	} 
+        	catch (SQLException ignored)
+        	{
+        		// Do nothing
+        	} 
+
+        	if (e instanceof SQLException)
+        	{
+        		throw (SQLException)e;
+        	}
+        	else if (e instanceof DataSetException)
+        	{
+        		throw (DataSetException)e;
+        	}
+        	else
+        	{
+        		throw new SQLException("QueryDataSet: exception caught.", e);
+        	}
+        }         
     }
 
     /**

Modified: db/torque/village/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/db/torque/village/trunk/xdocs/changes.xml?rev=982720&r1=982719&r2=982720&view=diff
==============================================================================
--- db/torque/village/trunk/xdocs/changes.xml (original)
+++ db/torque/village/trunk/xdocs/changes.xml Thu Aug  5 18:14:08 2010
@@ -25,6 +25,9 @@
 
   <body>
   <release version="3.3.1-SNAPSHOT" date="in SVN">
+    <action type="fix" dev="tv" issue="TORQUE-123">
+      Fixed: Statement is left open when Exception is thrown in the QueryDataSet constructor.
+    </action>
     <action type="fix" dev="tv" issue="TORQUE-8">
       Fixed: Village does not close every resultSet it opens.
     </action>



---------------------------------------------------------------------
To unsubscribe, e-mail: torque-dev-unsubscribe@db.apache.org
For additional commands, e-mail: torque-dev-help@db.apache.org


Mime
View raw message