Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2012-11-09 10:45:57 +0000
committerEike Stepper2012-11-09 10:45:57 +0000
commit573add2b3bcb0ec6a799a665bdf91d07874e1ca8 (patch)
treeab1cb16f28a868cc1643a77e3013b1b2ae06f0ea /plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo
parent04628d303137cf12dd59cfd42c5db379e5726fd3 (diff)
downloadcdo-573add2b3bcb0ec6a799a665bdf91d07874e1ca8.tar.gz
cdo-573add2b3bcb0ec6a799a665bdf91d07874e1ca8.tar.xz
cdo-573add2b3bcb0ec6a799a665bdf91d07874e1ca8.zip
[393911] Create a complete offline and fail-over example suite
https://bugs.eclipse.org/bugs/show_bug.cgi?id=393911
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo')
-rw-r--r--plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/DBStore.java19
1 files changed, 14 insertions, 5 deletions
diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/DBStore.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/DBStore.java
index ccada761dc..2f69770184 100644
--- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/DBStore.java
+++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/DBStore.java
@@ -27,13 +27,13 @@ import org.eclipse.emf.cdo.server.ITransaction;
import org.eclipse.emf.cdo.server.IView;
import org.eclipse.emf.cdo.server.StoreThreadLocal;
import org.eclipse.emf.cdo.server.db.IDBStore;
-import org.eclipse.emf.cdo.server.db.IDBStoreAccessor;
import org.eclipse.emf.cdo.server.db.IIDHandler;
import org.eclipse.emf.cdo.server.db.IMetaDataManager;
import org.eclipse.emf.cdo.server.db.mapping.IMappingStrategy;
import org.eclipse.emf.cdo.server.internal.db.bundle.OM;
import org.eclipse.emf.cdo.server.internal.db.messages.Messages;
import org.eclipse.emf.cdo.spi.server.InternalRepository;
+import org.eclipse.emf.cdo.spi.server.InternalSession;
import org.eclipse.emf.cdo.spi.server.LongIDStoreAccessor;
import org.eclipse.emf.cdo.spi.server.Store;
import org.eclipse.emf.cdo.spi.server.StoreAccessorPool;
@@ -469,12 +469,17 @@ public class DBStore extends Store implements IDBStore, CDOAllRevisionsProvider
public Map<CDOBranch, List<CDORevision>> getAllRevisions()
{
final Map<CDOBranch, List<CDORevision>> result = new HashMap<CDOBranch, List<CDORevision>>();
- IDBStoreAccessor accessor = getReader(null);
- StoreThreadLocal.setAccessor(accessor);
+
+ InternalSession session = null;
+ if (!StoreThreadLocal.hasSession())
+ {
+ session = getRepository().getSessionManager().openSession(null);
+ StoreThreadLocal.setSession(session);
+ }
try
{
- accessor.handleRevisions(null, null, CDOBranchPoint.UNSPECIFIED_DATE, true,
+ StoreThreadLocal.getAccessor().handleRevisions(null, null, CDOBranchPoint.UNSPECIFIED_DATE, true,
new CDORevisionHandler.Filtered.Undetached(new CDORevisionHandler()
{
public boolean handleRevision(CDORevision revision)
@@ -494,7 +499,11 @@ public class DBStore extends Store implements IDBStore, CDOAllRevisionsProvider
}
finally
{
- StoreThreadLocal.release();
+ if (session != null)
+ {
+ StoreThreadLocal.release();
+ session.close();
+ }
}
return result;

Back to the top