}
int nOffset = 0;
int nCount = tobjList.size();
InstanceList instanceList = new InstanceArrayList(nCount);
InstanceFactory factory = new InstanceFactory(identityMap, null, InstanceFactory.STATE, context);
for (int i = 0; i < nCount && (m_nMaxCount < 0 || instanceList.size() < m_nMaxCount); ++i)
{
TransferObject tobj = (TransferObject)tobjList.get(i);
m_instance = tobj;
if (bFiltered || m_where == null || !Boolean.FALSE.equals(m_where.getValue()))
{
Instance instance = factory.instantiate(tobj);
identityMap.clear();
if (isJoin())
{
join(instance, getAdapter().getOID(instance, m_childItem));
}
if (nOffset++ >= m_nOffset)
{
instanceList.add(instance);
}
}
}
if (bCached && !bMissed && factory.isLockMismatch())
{
bCached = false;
continue;
}