Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
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.java19
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();

Back to the top