package org.eclipse.persistence.testing.tests.unitofwork.referencesettings; import java.util.Collection; import java.util.Iterator; import org.eclipse.persistence.config.ReferenceMode; import org.eclipse.persistence.internal.sessions.UnitOfWorkImpl; import org.eclipse.persistence.sessions.UnitOfWork; import org.eclipse.persistence.testing.framework.AutoVerifyTestCase; import org.eclipse.persistence.testing.tests.unitofwork.changeflag.model.ALCTEmployee; import org.eclipse.persistence.testing.framework.TestErrorException; public class ChangeTrackedWeakReferenceTest extends AutoVerifyTestCase { public void test(){ UnitOfWork uow = getSession().acquireUnitOfWork(ReferenceMode.FORCE_WEAK); Collection collection = uow.readAllObjects(ALCTEmployee.class); for (Iterator iterator = collection.iterator(); iterator.hasNext();){ ((ALCTEmployee)iterator.next()).setFirstName(""+System.currentTimeMillis()); } int size = collection.size(); try{ Long[] arr = new Long[100000]; for (int i = 0; i< 100000; ++i){ arr[i] = new Long(i); } }catch (Error er){ //ignore } if (((UnitOfWorkImpl)uow).getCloneMapping().size() != size){ throw new TestErrorException("Released Objects with changes on weak references."); } } } ;