[Squirrel-sql-commits] sql12/fw/src/net/sourceforge/squirrel_sql/fw/sql ProgressCallBack.java,NONE,1
A Java SQL client for any JDBC compliant database
Brought to you by:
colbell,
gerdwagner
From: Gerd W. <ger...@us...> - 2006-03-06 06:23:49
|
Update of /cvsroot/squirrel-sql/sql12/fw/src/net/sourceforge/squirrel_sql/fw/sql In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6475/fw/src/net/sourceforge/squirrel_sql/fw/sql Modified Files: SQLDatabaseMetaData.java Added Files: ProgressCallBack.java Log Message: Fixed concurrency bugs and clean up. Index: SQLDatabaseMetaData.java =================================================================== RCS file: /cvsroot/squirrel-sql/sql12/fw/src/net/sourceforge/squirrel_sql/fw/sql/SQLDatabaseMetaData.java,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** SQLDatabaseMetaData.java 19 Feb 2006 10:13:31 -0000 1.28 --- SQLDatabaseMetaData.java 6 Mar 2006 06:23:42 -0000 1.29 *************** *** 350,357 **** finally { ! if (rs != null) { ! rs.close(); ! } ! } // Some drivers for both MS SQL and Sybase don't return guest as --- 350,355 ---- finally { ! close(rs); ! } // Some drivers for both MS SQL and Sybase don't return guest as *************** *** 576,582 **** finally { ! if (rs != null) { ! rs.close(); ! } } --- 574,578 ---- finally { ! close(rs); } *************** *** 902,957 **** finally { ! if (rs != null) { ! rs.close(); ! } ! } return (DataTypeInfo[])list.toArray(new DataTypeInfo[list.size()]); } ! /** ! * Retrieve information about the stored procedures in the system ! * ! * @param catalog The name of the catalog to retrieve procedures ! * for. An empty string will return those without a ! * catalog. <TT>null</TT> means that the catalog ! * will not be used to narrow the search. ! * @param schemaPattern The name of the schema to retrieve procedures ! * for. An empty string will return those without a ! * schema. <TT>null</TT> means that the schema ! * will not be used to narrow the search. ! * @param procedureNamepattern A procedure name pattern; must match the ! * procedure name as it is stored in the ! * database. ! * ! * @throws SQLException Thrown if an SQL error occurs. ! */ ! public synchronized IProcedureInfo[] getProcedures(String catalog, ! String schemaPattern, String procedureNamePattern) ! throws SQLException ! { ! DatabaseMetaData md = privateGetJDBCMetaData(); ! ArrayList list = new ArrayList(); ! ResultSet rs = md.getProcedures(catalog, schemaPattern, procedureNamePattern); ! try ! { ! final int[] cols = new int[] {1, 2, 3, 7, 8}; ! final ResultSetReader rdr = new ResultSetReader(rs, cols); ! Object[] row = null; ! while ((row = rdr.readRow()) != null) ! { ! final int type = ((Number)row[4]).intValue(); ! list.add(new ProcedureInfo(getAsString(row[0]), getAsString(row[1]), ! getAsString(row[2]), getAsString(row[3]), type, this)); ! } ! } ! finally ! { ! if (rs != null) { ! rs.close(); ! } ! ! } ! return (IProcedureInfo[])list.toArray(new IProcedureInfo[list.size()]); ! } /** --- 898,985 ---- finally { ! close(rs); ! } return (DataTypeInfo[])list.toArray(new DataTypeInfo[list.size()]); } ! private void close(ResultSet rs) ! throws SQLException ! { ! try ! { ! if (rs != null) ! { ! rs.close(); ! } ! } ! catch (Exception e) ! { ! s_log.info("closing resultset failed", e); ! } ! } ! ! /** ! * Retrieve information about the stored procedures in the system ! * ! * @param catalog The name of the catalog to retrieve procedures ! * for. An empty string will return those without a ! * catalog. <TT>null</TT> means that the catalog ! * will not be used to narrow the search. ! * @param schemaPattern The name of the schema to retrieve procedures ! * for. An empty string will return those without a ! * schema. <TT>null</TT> means that the schema ! * will not be used to narrow the search. ! * @param procedureNamepattern A procedure name pattern; must match the ! * procedure name as it is stored in the ! * database. ! * ! * @throws SQLException Thrown if an SQL error occurs. ! */ ! public synchronized IProcedureInfo[] getProcedures(String catalog, ! String schemaPattern, String procedureNamePattern) ! throws SQLException ! { ! return getProcedures(catalog, schemaPattern, procedureNamePattern, null); ! } ! ! public synchronized IProcedureInfo[] getProcedures(String catalog, ! String schemaPattern, ! String procedureNamePattern, ! ProgressCallBack progressCallBack) ! throws SQLException ! { ! DatabaseMetaData md = privateGetJDBCMetaData(); ! ArrayList list = new ArrayList(); ! ResultSet rs = md.getProcedures(catalog, schemaPattern, procedureNamePattern); ! int count = 0; ! try ! { ! final int[] cols = new int[]{1, 2, 3, 7, 8}; ! final ResultSetReader rdr = new ResultSetReader(rs, cols); ! Object[] row = null; ! while ((row = rdr.readRow()) != null) ! { ! final int type = ((Number) row[4]).intValue(); ! ProcedureInfo pi = new ProcedureInfo(getAsString(row[0]), getAsString(row[1]), ! getAsString(row[2]), getAsString(row[3]), type, this); ! ! list.add(pi); ! ! if (null != progressCallBack) ! { ! if(0 == count++ % 100 ) ! { ! progressCallBack.currentlyLoading(pi.getSimpleName()); ! } ! } ! } ! } ! finally ! { ! close(rs); ! ! } ! return (IProcedureInfo[]) list.toArray(new IProcedureInfo[list.size()]); ! } /** *************** *** 990,997 **** finally { ! if (rs != null) { ! rs.close(); ! } ! } } --- 1018,1023 ---- finally { ! close(rs); ! } } *************** *** 1045,1050 **** return value; } ! ! /** * Retrieve information about the tables in the system. * --- 1071,1086 ---- return value; } ! ! public synchronized ITableInfo[] getTables(String catalog, ! String schemaPattern, ! String tableNamePattern, ! String[] types) ! throws SQLException ! { ! return getTables(catalog, schemaPattern, tableNamePattern, types, null); ! } ! ! ! /** * Retrieve information about the tables in the system. * *************** *** 1067,1071 **** String schemaPattern, String tableNamePattern, ! String[] types) throws SQLException { --- 1103,1108 ---- String schemaPattern, String tableNamePattern, ! String[] types, ! ProgressCallBack progressCallBack) throws SQLException { *************** *** 1118,1122 **** // store all plain table info we have. tabResult = md.getTables(catalog, schemaPattern, tableNamePattern, types); ! while (tabResult != null && tabResult.next()) { ITableInfo tabInfo = new TableInfo(tabResult.getString(1), --- 1155,1160 ---- // store all plain table info we have. tabResult = md.getTables(catalog, schemaPattern, tableNamePattern, types); ! int count = 0; ! while (tabResult != null && tabResult.next()) { ITableInfo tabInfo = new TableInfo(tabResult.getString(1), *************** *** 1129,1133 **** } list.add(tabInfo); ! } // re-order nodes if the tables are stored hierachically --- 1167,1179 ---- } list.add(tabInfo); ! ! if(null != progressCallBack) ! { ! if(0 == count++ % 100 ) ! { ! progressCallBack.currentlyLoading(tabInfo.getSimpleName()); ! } ! } ! } // re-order nodes if the tables are stored hierachically *************** *** 1148,1152 **** superInfo.addChild(tabInfo); list.remove(tabInfo); // remove from toplevel. ! } while (superTabResult.next()); } --- 1194,1206 ---- superInfo.addChild(tabInfo); list.remove(tabInfo); // remove from toplevel. ! ! if(null != progressCallBack) ! { ! if(0 == count++ % 20 ) ! { ! progressCallBack.currentlyLoading(tabInfo.getSimpleName()); ! } ! } ! } while (superTabResult.next()); } *************** *** 1154,1166 **** finally { ! if(tabResult != null) ! { ! tabResult.close(); ! } ! if (superTabResult != null) ! { ! superTabResult.close(); ! } ! } return (ITableInfo[])list.toArray(new ITableInfo[list.size()]); --- 1208,1214 ---- finally { ! close(tabResult); ! close(superTabResult); ! } return (ITableInfo[])list.toArray(new ITableInfo[list.size()]); *************** *** 1207,1214 **** finally { ! if (rs != null) { ! rs.close(); ! } ! } return (IUDTInfo[])list.toArray(new IUDTInfo[list.size()]); --- 1255,1260 ---- finally { ! close(rs); ! } return (IUDTInfo[])list.toArray(new IUDTInfo[list.size()]); *************** *** 1549,1556 **** finally { ! if (rs != null) { ! rs.close(); ! } ! } final ForeignKeyInfo[] results = new ForeignKeyInfo[keys.size()]; --- 1595,1600 ---- finally { ! close(rs); ! } final ForeignKeyInfo[] results = new ForeignKeyInfo[keys.size()]; --- NEW FILE: ProgressCallBack.java --- package net.sourceforge.squirrel_sql.fw.sql; public interface ProgressCallBack { void currentlyLoading(String simpleName); } |