diff options
author | Eike Stepper | 2011-01-29 07:08:11 +0000 |
---|---|---|
committer | Eike Stepper | 2011-01-29 07:08:11 +0000 |
commit | f89871eacd55d43b3a5c7f228faffac2a6126abb (patch) | |
tree | 6297eea56d8ce328edc25687761577511fd6efe5 | |
parent | dd2879bfccfb8b14362b17968ad0d3cc4fe643ae (diff) | |
download | cdo-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
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());
}
}
|