[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