diff options
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Transaction.java')
-rw-r--r-- | plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Transaction.java | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Transaction.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Transaction.java index 55befcc726..bf956f2193 100644 --- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Transaction.java +++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Transaction.java @@ -157,6 +157,12 @@ public class Transaction extends View implements ITransaction, IStoreWriter.Comm return rollbackMessage; } + public void preCommit() + { + storeWriter = repository.getStore().getWriter(this); + StoreUtil.setReader(storeWriter); + } + public void commit(CDOPackage[] newPackages, CDORevision[] newObjects, CDORevisionDelta[] dirtyObjectDeltas) { timeStamp = System.currentTimeMillis(); @@ -165,9 +171,6 @@ public class Transaction extends View implements ITransaction, IStoreWriter.Comm this.dirtyObjectDeltas = dirtyObjectDeltas; dirtyObjects = new CDORevision[dirtyObjectDeltas.length]; - storeWriter = repository.getStore().getWriter(this); - StoreUtil.setReader(storeWriter); - try { adjustMetaRanges(); @@ -183,15 +186,6 @@ public class Transaction extends View implements ITransaction, IStoreWriter.Comm rollbackMessage = ex.getMessage(); rollback(); } - finally - { - if (storeWriter != null) - { - StoreUtil.setReader(null); - storeWriter.release(); - storeWriter = null; - } - } } public void postCommit(boolean success) @@ -213,6 +207,14 @@ public class Transaction extends View implements ITransaction, IStoreWriter.Comm } finally { + // TODO Do this while indcating instead of responding + if (storeWriter != null) + { + StoreUtil.setReader(null); + storeWriter.release(); + storeWriter = null; + } + timeStamp = 0L; packageManager.clear(); metaIDRanges.clear(); |