diff options
author | Eike Stepper | 2012-11-09 10:45:57 +0000 |
---|---|---|
committer | Eike Stepper | 2012-11-09 10:45:57 +0000 |
commit | 573add2b3bcb0ec6a799a665bdf91d07874e1ca8 (patch) | |
tree | ab1cb16f28a868cc1643a77e3013b1b2ae06f0ea /plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo | |
parent | 04628d303137cf12dd59cfd42c5db379e5726fd3 (diff) | |
download | cdo-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.java | 19 |
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; |