package org.eclipse.persistence.testing.tests.unitofwork.referencesettings; 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.framework.TestErrorException; import org.eclipse.persistence.testing.models.employee.domain.Employee; public class ForceWeakReferenceTest extends AutoVerifyTestCase { public void test(){ UnitOfWork uow = getSession().acquireUnitOfWork(ReferenceMode.FORCE_WEAK); int size = uow.readAllObjects(Employee.class).size(); try{ Long[] arr = new Long[10000000]; for (int i = 0; i< 10000000; ++i){ arr[i] = new Long(i); } System.gc(); try{ Thread.currentThread().sleep(200); }catch (InterruptedException ex){ } System.gc(); }catch (Error er){ //ignore } if (((UnitOfWorkImpl)uow).getCloneMapping().size() == size){ throw new TestErrorException("Did not release forced weak references."); } } } ;