diff options
author | Mikaël Barbero | 2013-07-29 09:09:20 +0000 |
---|---|---|
committer | Mikaël Barbero | 2013-07-29 09:09:20 +0000 |
commit | f73e12a2ee335e017ee5718aebc91bda3e57904a (patch) | |
tree | c93351616699cb73345a645cbdc66a8ac8680c09 | |
parent | b01278f7cd62bffb43e8626db4eba000931682d9 (diff) | |
download | org.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.java | 2 |
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); |