Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMikaël Barbero2013-07-29 09:09:20 +0000
committerMikaël Barbero2013-07-29 09:09:20 +0000
commitf73e12a2ee335e017ee5718aebc91bda3e57904a (patch)
treec93351616699cb73345a645cbdc66a8ac8680c09
parentb01278f7cd62bffb43e8626db4eba000931682d9 (diff)
downloadorg.eclipse.emf.compare-f73e12a2ee335e017ee5718aebc91bda3e57904a.tar.gz
org.eclipse.emf.compare-f73e12a2ee335e017ee5718aebc91bda3e57904a.tar.xz
org.eclipse.emf.compare-f73e12a2ee335e017ee5718aebc91bda3e57904a.zip
Prevent potential ConcurrentModificationException.
If we do not instantiate our own TreeItemAdapterFactorySpec, it is shared across compare editor. Then the 'disposal' list is shared too, and it may cause ConcurrentModificationException when closing a compare editor that reveals a previously opened one. Change-Id: I3a7ddd7e24c69424c65495952d227744b492573e Signed-off-by: Mikaël Barbero <mikael.barbero@obeo.fr>
-rw-r--r--plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/EMFCompareStructureMergeViewer.java2
1 files changed, 2 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/EMFCompareStructureMergeViewer.java b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/EMFCompareStructureMergeViewer.java
index a6abe1afe..6eeed23b6 100644
--- a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/EMFCompareStructureMergeViewer.java
+++ b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/EMFCompareStructureMergeViewer.java
@@ -57,6 +57,7 @@ import org.eclipse.emf.compare.ide.ui.logical.IStorageProviderAccessor;
import org.eclipse.emf.compare.rcp.EMFCompareRCPPlugin;
import org.eclipse.emf.compare.rcp.ui.internal.EMFCompareConstants;
import org.eclipse.emf.compare.rcp.ui.internal.structuremergeviewer.groups.IDifferenceGroupProvider;
+import org.eclipse.emf.compare.rcp.ui.internal.structuremergeviewer.groups.provider.TreeItemProviderAdapterFactorySpec;
import org.eclipse.emf.compare.scope.IComparisonScope;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource;
@@ -155,6 +156,7 @@ public class EMFCompareStructureMergeViewer extends AbstractViewerWrapper implem
fAdapterFactory = new ComposedAdapterFactory(EMFCompareRCPPlugin.getDefault()
.getAdapterFactoryRegistry());
+ fAdapterFactory.addAdapterFactory(new TreeItemProviderAdapterFactorySpec());
fAdapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
fAdapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory());
config.setProperty(EMFCompareConstants.COMPOSED_ADAPTER_FACTORY, fAdapterFactory);

Back to the top