diff options
author | Eike Stepper | 2013-03-17 09:18:34 +0000 |
---|---|---|
committer | Eike Stepper | 2013-03-17 17:16:06 +0000 |
commit | cf6c29f8a8c059c6b8d9d8449700b5c807641c87 (patch) | |
tree | 3bc5da3cbce6c90412c82b588c4fb08c89effeac /plugins/org.eclipse.emf.cdo/src | |
parent | 1b69ce45f7ee434081c356355c8bf55faa07bfc7 (diff) | |
download | cdo-cf6c29f8a8c059c6b8d9d8449700b5c807641c87.tar.gz cdo-cf6c29f8a8c059c6b8d9d8449700b5c807641c87.tar.xz cdo-cf6c29f8a8c059c6b8d9d8449700b5c807641c87.zip |
[396804] CDOMergingConflictResolver tests
https://bugs.eclipse.org/bugs/show_bug.cgi?id=396804
Diffstat (limited to 'plugins/org.eclipse.emf.cdo/src')
3 files changed, 23 insertions, 2 deletions
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewImpl.java index 85a76eb0e7..f91b2ea743 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewImpl.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewImpl.java @@ -68,6 +68,7 @@ import org.eclipse.net4j.util.concurrent.QueueRunner; import org.eclipse.net4j.util.event.IEvent; import org.eclipse.net4j.util.event.IListener; import org.eclipse.net4j.util.event.Notifier; +import org.eclipse.net4j.util.event.ThrowableEvent; import org.eclipse.net4j.util.lifecycle.LifecycleUtil; import org.eclipse.net4j.util.om.log.OMLogger; import org.eclipse.net4j.util.om.monitor.EclipseMonitor; @@ -864,6 +865,7 @@ public class CDOViewImpl extends AbstractCDOView { if (isActive()) { + fireEvent(new ThrowableEvent(this, ex)); throw ex; } } diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/AbstractChangeSetsConflictResolver.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/AbstractChangeSetsConflictResolver.java index 20f38f0f32..06c7423266 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/AbstractChangeSetsConflictResolver.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/AbstractChangeSetsConflictResolver.java @@ -89,6 +89,11 @@ public abstract class AbstractChangeSetsConflictResolver extends AbstractConflic public CDOChangeSet getRemoteChangeSet() { CDOChangeSetData changeSetData = remoteInvalidationEvents.getChangeSetData(); + if (changeSetData == null) + { + return null; + } + return createChangeSet(changeSetData); } diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/CDOMergingConflictResolver.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/CDOMergingConflictResolver.java index d765f08f30..a70f574c13 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/CDOMergingConflictResolver.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/CDOMergingConflictResolver.java @@ -30,6 +30,11 @@ import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevisionDelta; import org.eclipse.emf.cdo.transaction.CDOMerger; import org.eclipse.emf.cdo.transaction.CDOMerger.ConflictException; +import org.eclipse.emf.internal.cdo.bundle.OM; +import org.eclipse.emf.internal.cdo.view.CDOViewImpl; + +import org.eclipse.net4j.util.om.trace.ContextTracer; + import org.eclipse.emf.ecore.EStructuralFeature; import java.util.HashMap; @@ -44,6 +49,8 @@ import java.util.Set; */ public class CDOMergingConflictResolver extends AbstractChangeSetsConflictResolver { + private static final ContextTracer TRACER = new ContextTracer(OM.DEBUG_VIEW, CDOViewImpl.class); + private CDOMerger merger; public CDOMergingConflictResolver(CDOMerger merger) @@ -204,7 +211,6 @@ public class CDOMergingConflictResolver extends AbstractChangeSetsConflictResolv } catch (RuntimeException ex) { - ex.printStackTrace(); throw ex; } } @@ -214,7 +220,15 @@ public class CDOMergingConflictResolver extends AbstractChangeSetsConflictResolv Map<CDOID, CDORevisionDelta> remoteDeltas = new HashMap<CDOID, CDORevisionDelta>(); for (CDORevisionKey key : remoteChangeSet.getChangedObjects()) { - remoteDeltas.put(key.getID(), (CDORevisionDelta)key); + if (key instanceof CDORevisionDelta) + { + CDORevisionDelta delta = (CDORevisionDelta)key; + remoteDeltas.put(key.getID(), delta); + } + else if (TRACER.isEnabled()) + { + TRACER.format("Not a CDORevisionDelta: {0}", key); //$NON-NLS-1$ + } } return remoteDeltas; |