diff options
Diffstat (limited to 'plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/protocol/SyncRevisionRequest.java')
-rw-r--r-- | plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/protocol/SyncRevisionRequest.java | 33 |
1 files changed, 21 insertions, 12 deletions
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/protocol/SyncRevisionRequest.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/protocol/SyncRevisionRequest.java index 47f441d208..f2628c3030 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/protocol/SyncRevisionRequest.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/protocol/SyncRevisionRequest.java @@ -33,18 +33,19 @@ import java.util.Set; /** * @author Simon McDuff + * @since 2.0 */ public class SyncRevisionRequest extends CDOClientRequest<Set<CDOIDAndVersion>> { private static final ContextTracer PROTOCOL = new ContextTracer(OM.DEBUG_PROTOCOL, SyncRevisionRequest.class); - private Map<CDOID, CDORevision> collectionRevisions; + private Map<CDOID, CDORevision> collectionRevisions; private CDOSessionImpl cdoSession; private int referenceChunk; - public SyncRevisionRequest(IChannel channel, CDOSessionImpl cdoSession, Map<CDOID, CDORevision> cdoRevisions, + public SyncRevisionRequest(IChannel channel, CDOSessionImpl cdoSession, Map<CDOID, CDORevision> cdoRevisions, int referenceChunk) { super(channel); @@ -62,7 +63,10 @@ public class SyncRevisionRequest extends CDOClientRequest<Set<CDOIDAndVersion>> @Override protected void requesting(ExtendedDataOutputStream out) throws IOException { - if (PROTOCOL.isEnabled()) PROTOCOL.trace("Synchronization " + collectionRevisions.size() + " objects"); + if (PROTOCOL.isEnabled()) + { + PROTOCOL.trace("Synchronization " + collectionRevisions.size() + " objects"); + } out.writeInt(referenceChunk); out.writeInt(collectionRevisions.size()); @@ -76,10 +80,10 @@ public class SyncRevisionRequest extends CDOClientRequest<Set<CDOIDAndVersion>> out.writeInt(revision.getVersion()); } else + { out.writeInt(-1); - + } } - } @Override @@ -93,20 +97,25 @@ public class SyncRevisionRequest extends CDOClientRequest<Set<CDOIDAndVersion>> { CDORevisionImpl revision = new CDORevisionImpl(in, getSession().getRevisionManager(), getSession() .getPackageManager()); - + CDORevision oldRevision = collectionRevisions.get(revision.getID()); - + if (oldRevision == null) - throw new IllegalStateException(); - + { + throw new IllegalStateException("Didn't expect to receive object with id '" + revision.getID() + "'"); + } + listofDirtyObjects.add(CDOIDUtil.createIDAndVersion(oldRevision.getID(), oldRevision.getVersion())); - + getSession().getRevisionManager().addRevision(revision); } - if (PROTOCOL.isEnabled()) PROTOCOL.trace("Synchronization received " + size + " dirty objects"); + if (PROTOCOL.isEnabled()) + { + PROTOCOL.trace("Synchronization received " + size + " dirty objects"); + } - cdoSession.notifySync(listofDirtyObjects); + cdoSession.handleSync(listofDirtyObjects); return listofDirtyObjects; } |