Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaurent Delaigue2016-01-04 14:11:33 +0000
committerLaurent Delaigue2016-02-26 10:09:46 +0000
commit7c6011f05d8c563cff126cfbd0cc65995a8a01d3 (patch)
tree1f98dbf4272242deb29d97f7c0c6bcd6f5f59996
parentce943df732d97d129a2d8f66db1a241731f92456 (diff)
downloadorg.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.java16
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;
}

Back to the top