if ((nFlags & TRACK) != 0 && !m_container.isLoading())
{
if (m_changeMap == null)
{
m_changeMap = new HashTab(4);
}
UnitOfWork uow = m_container.getInvocationContext().getUnitOfWork();
Change change = new Change(true, uow);
oldChange = (Change)m_changeMap.put(instance, change);
if (oldChange != null)
{
if (oldChange.uow != uow)
{
m_changeMap.put(instance, oldChange);
throw new WorkStateException("err.runtime.collectionChange",
new Object[]{m_attribute.getName(), m_container.getLazyClassName()});
}
if (!oldChange.added)
{
m_changeMap.remove(instance);
}
}
else
{
uow.addChange(this);
}
}
}
InstanceHolder holder = instance;
if ((nFlags & WEAK) != 0 && m_nRefState != STRONG_REF)
{
if (m_instanceMap == null)
{
m_instanceMap = new WeakKeyTab(m_instanceArray.length);
m_nRefState = WEAK_REF;
}
holder = new Ref(instance, ((WeakKeyTab)m_instanceMap).m_refq);
}
else
{
if (m_instanceMap == null)
{
m_instanceMap = new HashTab(m_instanceArray.length);
m_nRefState = STRONG_REF;
}
else if (m_nRefState != STRONG_REF)
{
if (nOrdinal == m_nCount)