Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDani Megert2013-07-10 12:13:34 +0000
committerDani Megert2013-07-29 11:01:18 +0000
commitf8de70ec6154b04986c8249dea13c573a722c669 (patch)
tree8bfce5dd285f5aa7ce4b0b1a0cf08abc334fc5ff
parent7b8db75d7e1cb639dafec4c03cd66ba78718e11d (diff)
downloadeclipse.platform.team-f8de70ec6154b04986c8249dea13c573a722c669.tar.gz
eclipse.platform.team-f8de70ec6154b04986c8249dea13c573a722c669.tar.xz
eclipse.platform.team-f8de70ec6154b04986c8249dea13c573a722c669.zip
Fixed bug 404873: [History View] Sporadic StackOverflowError
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/history/GenericHistoryView.java33
1 files changed, 21 insertions, 12 deletions
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/history/GenericHistoryView.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/history/GenericHistoryView.java
index 29be3085b..68855930b 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/history/GenericHistoryView.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/history/GenericHistoryView.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2006, 2012 IBM Corporation and others.
+ * Copyright (c) 2006, 2013 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -302,22 +302,31 @@ public class GenericHistoryView extends PageBookView implements IHistoryView, IP
private ISelectionListener selectionListener = new ISelectionListener() {
- public void selectionChanged(IWorkbenchPart part, ISelection selection) {
+ private boolean isUpdatingSelection = false;
- if (GenericHistoryView.this == part)
+ public void selectionChanged(IWorkbenchPart part, ISelection selection) {
+ if (isUpdatingSelection)
return;
- if (selection instanceof IStructuredSelection) {
- IStructuredSelection structSelection = (IStructuredSelection) selection;
- //Always take the first element - this is not intended to work with multiple selection
- //Also, hang on to this selection for future use in case the history view is not visible
- lastSelectedElement = structSelection.getFirstElement();
-
- if (!isLinkingEnabled() || !checkIfPageIsVisible()) {
+ try {
+ isUpdatingSelection = true;
+ if (GenericHistoryView.this == part)
return;
+
+ if (selection instanceof IStructuredSelection) {
+ IStructuredSelection structSelection = (IStructuredSelection) selection;
+ //Always take the first element - this is not intended to work with multiple selection
+ //Also, hang on to this selection for future use in case the history view is not visible
+ lastSelectedElement = structSelection.getFirstElement();
+
+ if (!isLinkingEnabled() || !checkIfPageIsVisible()) {
+ return;
+ }
+
+ showLastSelectedElement();
}
-
- showLastSelectedElement();
+ } finally {
+ isUpdatingSelection = false;
}
}

Back to the top