diff options
author | Eike Stepper | 2019-10-30 06:21:54 +0000 |
---|---|---|
committer | Eike Stepper | 2019-10-30 06:21:54 +0000 |
commit | e064154d851a765006f3bbc54901f68a70f4c2c8 (patch) | |
tree | 43fe4f6f27970918934915db9787f98bbf7628f3 | |
parent | f644333ce0918e2d183aada461ee34fda7535052 (diff) | |
download | cdo-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.java | 5 | ||||
-rw-r--r-- | plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/BackupTest.java | 4 |
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()); |