Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2019-10-30 06:21:54 +0000
committerEike Stepper2019-10-30 06:21:54 +0000
commite064154d851a765006f3bbc54901f68a70f4c2c8 (patch)
tree43fe4f6f27970918934915db9787f98bbf7628f3
parentf644333ce0918e2d183aada461ee34fda7535052 (diff)
downloadcdo-e064154d851a765006f3bbc54901f68a70f4c2c8.tar.gz
cdo-e064154d851a765006f3bbc54901f68a70f4c2c8.tar.xz
cdo-e064154d851a765006f3bbc54901f68a70f4c2c8.zip
[552512] CDOServerExporter does not release the Session
https://bugs.eclipse.org/bugs/show_bug.cgi?id=552512
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/CDOServerExporter.java5
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/BackupTest.java4
2 files changed, 9 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/CDOServerExporter.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/CDOServerExporter.java
index a64698602f..cfe445f1ce 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/CDOServerExporter.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/CDOServerExporter.java
@@ -179,10 +179,15 @@ public abstract class CDOServerExporter<OUT>
finally
{
StoreThreadLocal.release();
+
if (!wasActive)
{
LifecycleUtil.deactivate(repository);
}
+ else
+ {
+ LifecycleUtil.deactivate(session);
+ }
repository = null;
}
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/BackupTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/BackupTest.java
index 841d2bf803..08eef2813e 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/BackupTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/BackupTest.java
@@ -150,6 +150,7 @@ public class BackupTest extends AbstractCDOTest
private void doExportImport(boolean useAfterImport) throws Exception, CommitException
{
InternalRepository repo1 = getRepository();
+ int sessionsBeforeExport = repo1.getSessionManager().getSessions().length;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
CDOServerExporter<?> exporter = createExporter(repo1);
@@ -157,6 +158,9 @@ public class BackupTest extends AbstractCDOTest
System.out.println(baos);
+ // Test bug 552512.
+ assertEquals(sessionsBeforeExport, repo1.getSessionManager().getSessions().length);
+
InternalRepository repo2 = getRepository("repo2", false);
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());

Back to the top