[hibernate-commits] Hibernate SVN: r10494 - trunk/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/dialect

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Tue Sep 19 12:59:39 EDT 2006


Author: max.andersen at jboss.com
Date: 2006-09-19 12:59:36 -0400 (Tue, 19 Sep 2006)
New Revision: 10494

Modified:
   trunk/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/dialect/OracleMetaDataDialect.java
   trunk/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/dialect/ResultSetIterator.java
Log:
HBX-758 OracleMetaDataDialect
 fix opencursor leak (which were actually open statement leak)

Modified: trunk/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/dialect/OracleMetaDataDialect.java
===================================================================
--- trunk/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/dialect/OracleMetaDataDialect.java	2006-09-19 16:02:12 UTC (rev 10493)
+++ trunk/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/dialect/OracleMetaDataDialect.java	2006-09-19 16:59:36 UTC (rev 10494)
@@ -56,7 +56,7 @@
 			
 	        ResultSet tableRs = stmt.executeQuery(query.toString());
 			
-			return new ResultSetIterator(tableRs, getSQLExceptionConverter()) {
+			return new ResultSetIterator(stmt, tableRs, getSQLExceptionConverter()) {
 				
 				Map element = new HashMap();
 				protected Object convertRow(ResultSet tableRs) throws SQLException {
@@ -108,7 +108,7 @@
 			
 	        ResultSet indexRs = stmt.executeQuery(query.toString());
 						
-			return new ResultSetIterator(indexRs, getSQLExceptionConverter()) {
+			return new ResultSetIterator(stmt, indexRs, getSQLExceptionConverter()) {
 				
 				Map element = new HashMap();
 				protected Object convertRow(ResultSet rs) throws SQLException {
@@ -140,12 +140,12 @@
 	        Statement stmt = this.getConnection().createStatement();
 	        StringBuffer query = new StringBuffer();
 
-	        query.append("select column_name, owner, decode(nullable,'N',0,1), ");
-	        query.append("decode(data_type, 'FLOAT',decode(data_precision,null, data_length, data_precision), 'NUMBER', decode(data_precision,null, data_length, data_precision), data_length), ");
+	        query.append("select column_name as COLUMN_NAME, owner as TABLE_SCHEM, decode(nullable,'N',0,1) as NULLABLE, ");
+	        query.append("decode(data_type, 'FLOAT',decode(data_precision,null, data_length, data_precision), 'NUMBER', decode(data_precision,null, data_length, data_precision), data_length) as COLUMN_SIZE, ");
 	        query.append("decode(data_type,'CHAR',1, 'DATE',91, 'FLOAT',6, 'LONG',-1, 'NUMBER',2, 'VARCHAR2',12, 'BFILE',-13, ");
 	        query.append("'BLOB',2004, 'CLOB',2005, 'MLSLABEL',1111, 'NCHAR',1, 'NCLOB',2005, 'NVARCHAR2',12, ");
-	        query.append("'RAW',-3, 'ROWID',1111, 'UROWID',1111, 'LONG RAW', -4, 'TIMESTAMP', 93, 'XMLTYPE',2005, 1111), ");
-	        query.append("table_name, data_type, decode(data_scale, null, 0 ,data_scale) ");
+	        query.append("'RAW',-3, 'ROWID',1111, 'UROWID',1111, 'LONG RAW', -4, 'TIMESTAMP', 93, 'XMLTYPE',2005, 1111) as DATA_TYPE, ");
+	        query.append("table_name as TABLE_NAME, data_type as TYPE_NAME, decode(data_scale, null, 0 ,data_scale) as DECIMAL_DIGITS ");
 	        query.append("from all_tab_columns ");
 	        if (schema != null || table != null || column != null)
 	        	query.append("where ");
@@ -169,7 +169,7 @@
 			
 	        ResultSet columnRs = stmt.executeQuery(query.toString());
 			
-			return new ResultSetIterator(columnRs, getSQLExceptionConverter()) {
+			return new ResultSetIterator(stmt, columnRs, getSQLExceptionConverter()) {
 				
 				Map element = new HashMap();
 				protected Object convertRow(ResultSet rs) throws SQLException {
@@ -221,7 +221,7 @@
 			
 	        ResultSet pkeyRs = stmt.executeQuery(query.toString());	
 	        
-			return new ResultSetIterator(pkeyRs, getSQLExceptionConverter()) {
+			return new ResultSetIterator(stmt, pkeyRs, getSQLExceptionConverter()) {
 				
 				Map element = new HashMap();
 				protected Object convertRow(ResultSet rs) throws SQLException {
@@ -277,7 +277,7 @@
 			
 	        ResultSet pExportRs = stmt.executeQuery(query.toString());	
 			
-			return new ResultSetIterator(pExportRs, getSQLExceptionConverter()) {
+			return new ResultSetIterator(stmt, pExportRs, getSQLExceptionConverter()) {
 				
 				Map element = new HashMap();
 				protected Object convertRow(ResultSet rs) throws SQLException {

Modified: trunk/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/dialect/ResultSetIterator.java
===================================================================
--- trunk/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/dialect/ResultSetIterator.java	2006-09-19 16:02:12 UTC (rev 10493)
+++ trunk/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/dialect/ResultSetIterator.java	2006-09-19 16:59:36 UTC (rev 10494)
@@ -2,6 +2,7 @@
 
 import java.sql.ResultSet;
 import java.sql.SQLException;
+import java.sql.Statement;
 import java.util.Iterator;
 import java.util.NoSuchElementException;
 
@@ -20,11 +21,22 @@
 
 	private SQLExceptionConverter sec;
 
+	private Statement statement = null;
+
 	protected ResultSetIterator(ResultSet resultset, SQLExceptionConverter sec) {
+		this(null, resultset, sec);
+	}
+
+	public ResultSetIterator(Statement stmt, ResultSet resultset, SQLExceptionConverter exceptionConverter) {
 		this.rs = resultset;
-		this.sec = sec;
+		this.sec = exceptionConverter;
+		this.statement  = stmt;		
 	}
 
+	protected SQLExceptionConverter getSQLExceptionConverter() {
+		return sec;
+	}
+	
 	public boolean hasNext() {
 		try {
 			advance();
@@ -78,6 +90,9 @@
 	public void close() {
 		try {
 			rs.close();
+			if(statement!=null) {
+				statement.close();
+			}			
 		}
 		catch (SQLException e) {
 			handleSQLException(e);			




More information about the hibernate-commits mailing list