odaObject,
	private void initInstance( OdiAdapter odiAdpater, BaseQuery query,			IResultClass rsMeta, SortSpec sortSpec ) throws DataException	{			// compute the number of rows which can be cached in memory		int memoryCacheRowCount = computeCacheRowCount( rsMeta );				IResultObject odaObject;		IResultObject[] resultObjects;		List resultObjectsList = new ArrayList( );		RowResultSet rowResultSet = new RowResultSet( query, odiAdpater, rsMeta );				int dataCount = 0;		while ( ( odaObject = rowResultSet.next( ) ) != null )		{			dataCount++;			// notice. it is less than, not less than or equal			if ( dataCount < memoryCacheRowCount ) 			{				resultObjectsList.add( odaObject );			}			else			{				resultObjectsList.add( odaObject );				resultObjects = (IResultObject[]) resultObjectsList.toArray( new IResultObject[0] );				resultSetCache = new DiskCache( resultObjects,						rowResultSet,						getComparator( sortSpec ),						memoryCacheRowCount );				break;			}		}		if ( resultSetCache == null )		{			resultObjects = (IResultObject[]) resultObjectsList.toArray( new IResultObject[0] );						resultSetCache = new MemoryCache( resultObjects,					getComparator( sortSpec ) );		}				odaObject = null;		resultObjects = null;		resultObjectsList = null;		rowResultSet = null;	}