Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2011-01-29 07:08:11 +0000
committerEike Stepper2011-01-29 07:08:11 +0000
commitf89871eacd55d43b3a5c7f228faffac2a6126abb (patch)
tree6297eea56d8ce328edc25687761577511fd6efe5
parentdd2879bfccfb8b14362b17968ad0d3cc4fe643ae (diff)
downloadcdo-f89871eacd55d43b3a5c7f228faffac2a6126abb.tar.gz
cdo-f89871eacd55d43b3a5c7f228faffac2a6126abb.tar.xz
cdo-f89871eacd55d43b3a5c7f228faffac2a6126abb.zip
[329254] LastCommitTimeStamp updated even when a serverSide Error occurred
https://bugs.eclipse.org/bugs/show_bug.cgi?id=329254
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RepositoryTest.java20
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_329254_Test.java14
2 files changed, 24 insertions, 10 deletions
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RepositoryTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RepositoryTest.java
index db7a2e0c67..d215788170 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RepositoryTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RepositoryTest.java
@@ -13,12 +13,14 @@ package org.eclipse.emf.cdo.tests;
import org.eclipse.emf.cdo.common.revision.CDORevision;
import org.eclipse.emf.cdo.eresource.CDOResource;
import org.eclipse.emf.cdo.server.CDOServerUtil;
+import org.eclipse.emf.cdo.server.IMEMStore;
import org.eclipse.emf.cdo.server.IRepository;
import org.eclipse.emf.cdo.server.ISession;
import org.eclipse.emf.cdo.server.ISessionManager;
import org.eclipse.emf.cdo.server.IStoreAccessor.CommitContext;
import org.eclipse.emf.cdo.server.ITransaction;
import org.eclipse.emf.cdo.session.CDOSession;
+import org.eclipse.emf.cdo.spi.server.InternalRepository;
import org.eclipse.emf.cdo.spi.server.InternalStore;
import org.eclipse.emf.cdo.spi.server.ObjectWriteAccessHandler;
import org.eclipse.emf.cdo.tests.model1.Customer;
@@ -98,6 +100,24 @@ public class RepositoryTest extends AbstractCDOTest
assertEquals(0, sessionManager.getSessions().length);
}
+ /**
+ * See bug 329254
+ */
+ public void testLastCommitTime() throws Exception
+ {
+ skipTest(getRepository().getStore() instanceof IMEMStore);
+
+ CDOSession session = openSession();
+ CDOTransaction transaction = session.openTransaction();
+ CDOResource resource = transaction.createResource("/res1");
+ resource.getContents().add(createCustomer("Eike"));
+ long timeStamp = transaction.commit().getTimeStamp();
+ session.close();
+
+ InternalRepository repository = restartRepository();
+ assertEquals(timeStamp, repository.getLastCommitTimeStamp());
+ }
+
public void testWriteAccessHandlers() throws Exception
{
CDOSession session = openSession();
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_329254_Test.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_329254_Test.java
index b0b9a93cc5..24d29ca979 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_329254_Test.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_329254_Test.java
@@ -205,16 +205,14 @@ public class Bugzilla_329254_Test extends AbstractCDOTest
Company company1b = getModel1Factory().createCompany();
company1b.setName("companyB");
resource.getContents().add(company1b);
- transaction1.commit();
+ commitAndSync(transaction1, transaction2, transaction3);
modelInitialized = true;
// do concurrent changes on different objects, same type.
- transaction2.waitForUpdate(transaction1.getLastCommitTime());
Company company2a = transaction2.getObject(company1a);
company2a.setName("companyA2");
- transaction3.waitForUpdate(transaction1.getLastCommitTime());
Company company3b = transaction3.getObject(company1b);
company3b.setName("companyB2");
@@ -273,10 +271,9 @@ public class Bugzilla_329254_Test extends AbstractCDOTest
CDOTransaction transaction4 = session2.openTransaction();
Company company4a = transaction4.getObject(company1a);
company4a.setName("companyA3");
- transaction4.commit();
+ commitAndSync(transaction4, transaction1);
// check if update arrived.
- transaction1.waitForUpdate(transaction4.getLastCommitTime(), 2000);
assertEquals(company4a.getName(), company1a.getName());
}
@@ -301,16 +298,14 @@ public class Bugzilla_329254_Test extends AbstractCDOTest
Category cat1 = getModel1Factory().createCategory();
cat1.setName("category1");
company1.getCategories().add(cat1);
- transaction1.commit();
+ commitAndSync(transaction1, transaction2, transaction3);
modelInitialized = true;
// do concurrent changes on different objects, different type.
- transaction2.waitForUpdate(transaction1.getLastCommitTime());
Company company2 = transaction2.getObject(company1);
company2.setName("company2");
- transaction3.waitForUpdate(transaction1.getLastCommitTime());
Category cat3 = transaction3.getObject(cat1);
cat3.setName("category3");
@@ -369,10 +364,9 @@ public class Bugzilla_329254_Test extends AbstractCDOTest
CDOTransaction transaction4 = session2.openTransaction();
Company company4 = transaction4.getObject(company1);
company4.setName("company3");
- transaction4.commit();
+ commitAndSync(transaction4, transaction1);
// check if update arrived.
- transaction1.waitForUpdate(transaction4.getLastCommitTime(), 2000);
assertEquals(company4.getName(), company1.getName());
}
}

Back to the top