{ ( (DataSourceRuntime) existingDefn ).closeOdiDataSource( ); }
this.dataSourceManager.addDataSource( (DataSourceRuntime) existingDefn );
	public void defineDataSource( IBaseDataSourceDesign dataSource )			throws DataException	{		logger.entering( DataEngineImpl.class.getName( ),				"defineDataSource",				dataSource == null ? null : dataSource.getName( ) );		if ( dataSource == null )		{			NullPointerException e = new NullPointerException( "dataSource param cannot be null" );			logger.logp( Level.WARNING,					DataEngineImpl.class.getName( ),					"defineDataSource",					"dataSource param cannot be null",					e );			throw e;		}		if ( dataSources == null )		{			IllegalStateException e = new IllegalStateException( "DataEngine has been shutdown" );			logger.logp( Level.WARNING,					DataEngineImpl.class.getName( ),					"defineDataSource",					"DataEngine has been shutdown",					e );			throw e;		}		String name = dataSource.getName( );		if ( name == null || name.length( ) == 0 )		{			IllegalArgumentException e=new IllegalArgumentException( "Data source has no name" );			logger.logp( Level.WARNING,					DataEngineImpl.class.getName( ),					"defineDataSource",					"Data source has no name",					e );			throw e; 		}		if ( logger.isLoggable( Level.FINE ) )			logger.logp( Level.FINE,					DataEngineImpl.class.getName( ),					"defineDataSource",					"DataEngine.defineDataSource: "							+ LogUtil.toString( dataSource ) );				// See if this data source is already defined; if so update its design		Object existingDefn = dataSources.get( dataSource.getName( ) );		if ( existingDefn != null )		{			( (DataSourceRuntime) existingDefn ).closeOdiDataSource( );		}				// Create a corresponding runtime for the data source and add it to		// the map		DataSourceRuntime newDefn = DataSourceRuntime.newInstance( dataSource,				this );		dataSources.put( newDefn.getName( ), newDefn );				logger.exiting( DataEngineImpl.class.getName( ), "defineDataSource" );	}