diff options
author | Laurent Delaigue | 2016-01-04 14:11:33 +0000 |
---|---|---|
committer | Laurent Delaigue | 2016-02-26 10:09:46 +0000 |
commit | 7c6011f05d8c563cff126cfbd0cc65995a8a01d3 (patch) | |
tree | 1f98dbf4272242deb29d97f7c0c6bcd6f5f59996 | |
parent | ce943df732d97d129a2d8f66db1a241731f92456 (diff) | |
download | org.eclipse.emf.compare-7c6011f05d8c563cff126cfbd0cc65995a8a01d3.tar.gz org.eclipse.emf.compare-7c6011f05d8c563cff126cfbd0cc65995a8a01d3.tar.xz org.eclipse.emf.compare-7c6011f05d8c563cff126cfbd0cc65995a8a01d3.zip |
[467547] Fix IllegalArgumentException in CompareToolBar
The toolbar can be disposed before it's been registered with the
EventBus...
Bug: 467547
Change-Id: I2a9e29dc2fcad7a77ca8bcd1bfbedb6881ea87a5
Signed-off-by: Laurent Delaigue <laurent.delaigue@obeo.fr>
-rw-r--r-- | plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/CompareToolBar.java | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/CompareToolBar.java b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/CompareToolBar.java index 9beb79421..6cb3ceb81 100644 --- a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/CompareToolBar.java +++ b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/CompareToolBar.java @@ -11,6 +11,7 @@ *******************************************************************************/ package org.eclipse.emf.compare.ide.ui.internal.structuremergeviewer; +import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.collect.Lists.newArrayListWithCapacity; import com.google.common.eventbus.Subscribe; @@ -79,16 +80,16 @@ public class CompareToolBar implements ISelectionChangedListener { */ public CompareToolBar(ToolBarManager toolbarManager, StructureMergeViewerGrouper viewerGrouper, StructureMergeViewerFilter viewerFilter, EMFCompareConfiguration compareConfiguration) { - this.toolbarManager = toolbarManager; - this.compareConfiguration = compareConfiguration; + this.toolbarManager = checkNotNull(toolbarManager); + this.compareConfiguration = checkNotNull(compareConfiguration); mergeActions = newArrayListWithCapacity(2); mergeAllNonConflictingActions = newArrayListWithCapacity(2); - groupActionMenu = new GroupActionMenu(viewerGrouper, EMFCompareRCPUIPlugin.getDefault() + groupActionMenu = new GroupActionMenu(checkNotNull(viewerGrouper), EMFCompareRCPUIPlugin.getDefault() .getDifferenceGroupProviderRegistry()); - filterActionMenu = new FilterActionMenu(viewerFilter, EMFCompareRCPUIPlugin.getDefault() - .getDifferenceFilterRegistry()); + filterActionMenu = new FilterActionMenu(checkNotNull(viewerFilter), EMFCompareRCPUIPlugin + .getDefault().getDifferenceFilterRegistry()); } public final void initToolbar(AbstractTreeViewer viewer, INavigatable nav) { @@ -172,7 +173,10 @@ public class CompareToolBar implements ISelectionChangedListener { public void dispose() { toolbarManager.removeAll(); - compareConfiguration.getEventBus().unregister(this); + if (doOnce) { + // doOnce makes sure we have been registered with the eventBus + compareConfiguration.getEventBus().unregister(this); + } this.doOnce = false; } |