Skip to main content

This CGIT instance is deprecated, and repositories have been moved to Gitlab or Github. See the repository descriptions for specific locations.

summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2011-05-18 08:58:48 +0000
committerEike Stepper2011-05-18 08:58:48 +0000
commit4173b51978d21faa3b4a77f0890cb5eea1d99c29 (patch)
treed2c775ac518c1e473664be7f875e09f190a32aef
parent093d37bb6b9d464c1d3b6e00989a4222b6542d47 (diff)
downloadcdo-4173b51978d21faa3b4a77f0890cb5eea1d99c29.tar.gz
cdo-4173b51978d21faa3b4a77f0890cb5eea1d99c29.tar.xz
cdo-4173b51978d21faa3b4a77f0890cb5eea1d99c29.zip
[344072] Reattachment registers object as DIRTY even when it's not
https://bugs.eclipse.org/bugs/show_bug.cgi?id=344072
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOStateMachine.java9
1 files changed, 4 insertions, 5 deletions
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOStateMachine.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOStateMachine.java
index 30719c76cd..dc33de14c1 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOStateMachine.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOStateMachine.java
@@ -657,9 +657,9 @@ public final class CDOStateMachine extends FiniteStateMachine<CDOState, CDOEvent
public void execute(InternalCDOObject object, CDOState state, CDOEvent event, InternalCDOTransaction transaction)
{
InternalCDORevisionManager revisionManager = transaction.getSession().getRevisionManager();
- CDORevisionKey revKey = transaction.getCleanRevisions().get(object);
+ CDORevision cleanRevision = transaction.getCleanRevisions().get(object);
- CDOID id = revKey.getID();
+ CDOID id = cleanRevision.getID();
object.cdoInternalSetID(id);
object.cdoInternalSetView(transaction);
@@ -667,15 +667,14 @@ public final class CDOStateMachine extends FiniteStateMachine<CDOState, CDOEvent
CDORevisionFactory factory = revisionManager.getFactory();
InternalCDORevision revision = (InternalCDORevision)factory.createRevision(object.eClass());
revision.setID(id);
- revision.setBranchPoint(revKey.getBranch().getHead());
- revision.setVersion(revKey.getVersion());
+ revision.setBranchPoint(cleanRevision.getBranch().getHead());
+ revision.setVersion(cleanRevision.getVersion());
// Populate the revision based on the values in the CDOObject
object.cdoInternalSetRevision(revision);
object.cdoInternalPostAttach();
// Compute a revision delta and register it with the tx
- CDORevision cleanRevision = revisionManager.getRevisionByVersion(id, revKey, -1, true);
CDORevisionDelta revisionDelta = revision.compare(cleanRevision);
if (revisionDelta.isEmpty())
{

Back to the top