Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
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.java26
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();

Back to the top