diff options
author | Simon McDuff | 2008-12-31 18:12:07 +0000 |
---|---|---|
committer | Simon McDuff | 2008-12-31 18:12:07 +0000 |
commit | f2495e877db47f4a789b0456ac76344f7554a76c (patch) | |
tree | dab0465bec8076b17f8927c71db64ea4ee8ff9c7 | |
parent | 911f7840f50a144923c0e32fb915a99aab14484b (diff) | |
download | cdo-f2495e877db47f4a789b0456ac76344f7554a76c.tar.gz cdo-f2495e877db47f4a789b0456ac76344f7554a76c.tar.xz cdo-f2495e877db47f4a789b0456ac76344f7554a76c.zip |
[259401] SavePoints create persistent revisions with version < 1
https://bugs.eclipse.org/bugs/show_bug.cgi?id=259401
-rw-r--r-- | plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/SavePointTest.java | 5 | ||||
-rw-r--r-- | plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectMerger.java | 5 |
2 files changed, 9 insertions, 1 deletions
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/SavePointTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/SavePointTest.java index 0ce914d488..fc17490cdd 100644 --- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/SavePointTest.java +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/SavePointTest.java @@ -41,18 +41,23 @@ public class SavePointTest extends AbstractCDOTest Category category1 = getModel1Factory().createCategory(); company1.getCategories().add(category1); + assertEquals(1, CDOUtil.getCDOObject(company1).cdoRevision().getVersion()); transaction1.setSavepoint(); + assertEquals(1, CDOUtil.getCDOObject(company1).cdoRevision().getVersion()); Category category2 = getModel1Factory().createCategory(); company1.getCategories().add(category2); CDOSavepoint savePoint2 = transaction1.setSavepoint(); + assertEquals(1, CDOUtil.getCDOObject(company1).cdoRevision().getVersion()); Category category3 = getModel1Factory().createCategory(); company1.getCategories().add(category3); transaction1.setSavepoint(); + assertEquals(1, CDOUtil.getCDOObject(company1).cdoRevision().getVersion()); transaction1.rollback(savePoint2); + assertEquals(1, CDOUtil.getCDOObject(company1).cdoRevision().getVersion()); assertNew(category1, transaction1); assertNew(company1, transaction1); diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectMerger.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectMerger.java index dfcfb13917..a86b079759 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectMerger.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectMerger.java @@ -28,7 +28,10 @@ public class CDOObjectMerger extends CDORevisionMerger public void merge(InternalCDOObject object, CDORevisionDelta delta) { InternalCDORevision revision = (InternalCDORevision)object.cdoRevision().copy(); - revision.setTransactional(); + if (!revision.isTransactional()) + { + revision.setTransactional(); + } object.cdoInternalSetRevision(revision); // NEW object should stay that state. |