jdbcDriverName = new ArrayList( );  ArrayList abstractDriverClassList = new ArrayList( );
jdbcDrivers = new ArrayList( ); URL[] classPathURLs = getJdbcDriverClassPathURLS(driverName);
	public static ArrayList getJdbcDriverNames( String driverName )	{		if ( jdbcDriverName == null )		{			jdbcDriverName = new ArrayList( );			ArrayList abstractDriverClassList = new ArrayList( );			try			{				// Adding the odbc-jdbc driver				jdbcDriverName.add( "sun.jdbc.odbc.JdbcOdbcDriver" ); //$NON-NLS-1$			}			catch ( Exception e )			{			}			ArrayList driverFiles = null;			try			{				JdbcDriverConfigUtil driverConfigUtil = new JdbcDriverConfigUtil( driverName );				driverFiles = driverConfigUtil.getDriverFiles( );			}			catch ( Exception e )			{				ExceptionHandler.handle( e );			}			Iterator iterator = driverFiles.iterator( );			Class aClass = null;			jdbcDriverLocations = new ArrayList( );			URL[] urlList = new URL[driverFiles.size( )];			// Create a URL Array for the class loader to use			for ( int i = 0; i < driverFiles.size( ); i++ )			{				File driverFile = (File) driverFiles.get( i );				try				{					urlList[i] = new URL( "file:///" //$NON-NLS-1$							+ driverFile.getAbsolutePath( ) );					jdbcDriverLocations.add( driverFile.getAbsolutePath( ) );				}				catch ( MalformedURLException e )				{					ExceptionHandler.handle( e );				}			}			URLClassLoader urlClassLoader = new URLClassLoader( urlList,					ClassLoader.getSystemClassLoader( ) );			while ( iterator.hasNext( ) )			{				File driverFile = (File) iterator.next( );				if ( driverFile.getName( ).endsWith( ".jar" ) ) //$NON-NLS-1$				{					try					{						String[] resourceNames = getJarFileEntries( driverFile );						for ( int j = 0; j < resourceNames.length; j++ )						{							String resourceName = resourceNames[j];							if ( resourceName.endsWith( ".class" ) ) //$NON-NLS-1$							{								try								{									resourceName = ( resourceName.replaceAll( "/", //$NON-NLS-1$											"." ) ).substring( 0, //$NON-NLS-1$											resourceName.length( ) - 6 );									aClass = urlClassLoader.loadClass( resourceName );								}								catch ( Throwable e )								{								}								if ( aClass != null )								{									if ( instanceOfSQLDriver( aClass ) )									{										// Do not add it, if it is a Abstract										// class										int modifier = aClass.getModifiers( );										boolean isAbstract = Modifier.isAbstract( modifier );										if ( isAbstract )										{											Class storedClass = aClass;											abstractDriverClassList.add( storedClass );										}										if ( !isAbstract )										{											jdbcDriverName.add( aClass.getName( ) );										}									}								}							}						}					}					catch ( Throwable e )					{					}				}			}		}		return jdbcDriverName;	}