diff options
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AbstractCDOTest.java')
-rw-r--r-- | plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AbstractCDOTest.java | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AbstractCDOTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AbstractCDOTest.java index 9026b16fa6..fdb3881988 100644 --- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AbstractCDOTest.java +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AbstractCDOTest.java @@ -90,6 +90,25 @@ public abstract class AbstractCDOTest extends ConfigTest super.doTearDown(); } + /** + * Closes the given session and waits until the server-side session is closed, too. + * In TCP scenarios the latter does not happen synchronously, which can confuse tests that count sessions. + */ + public void closeSession(CDOSession session) throws InterruptedException + { + final int sessionID = session.getSessionID(); + session.close(); + + new PollingTimeOuter() + { + @Override + protected boolean successful() + { + return getRepository().getSessionManager().getSession(sessionID) == null; + } + }.assertNoTimeOut(); + } + public InternalSession serverSession(CDOSession session) { String repositoryName = session.getRepositoryInfo().getName(); |