mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-23 17:05:26 +02:00
Bug 474946 - Initialization Code must be run asynchronously
Do the initialization asynchronously. If the service was initialized during this class gets instantiated, it was re-instantiated and so a StackOverflowException was produced. Now the initialization is done asynchronously. Bug: 474946 Change-Id: I15356c5f6e450d825d4f8615e2fba177409f5894 Signed-off-by: Martin Schreiber <m.schreiber@bachmann.info>
This commit is contained in:
parent
e38a038340
commit
2cf6b41bd2
1 changed files with 17 additions and 11 deletions
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2010, 2011 Ericsson and others.
|
||||
* Copyright (c) 2010, 2015 Ericsson 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
|
||||
|
@ -63,18 +63,24 @@ public class ReverseToggleCommandHandler extends DebugCommandHandler implements
|
|||
private IDebugContextService fContextService = null;
|
||||
|
||||
public ReverseToggleCommandHandler() {
|
||||
IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
|
||||
final IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
|
||||
if (window != null) {
|
||||
fContextService = DebugUITools.getDebugContextManager().getContextService(window);
|
||||
if (fContextService != null) {
|
||||
fContextService.addPostDebugContextListener(this);
|
||||
window.getShell().getDisplay().asyncExec(new Runnable() {
|
||||
|
||||
// This constructor might be called after the launch, so we must refresh here too.
|
||||
// This can happen if we activate the action set after the launch.
|
||||
refresh(fContextService.getActiveContext());
|
||||
}
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void run() {
|
||||
fContextService = DebugUITools.getDebugContextManager().getContextService(window);
|
||||
if (fContextService != null) {
|
||||
fContextService.addPostDebugContextListener(ReverseToggleCommandHandler.this);
|
||||
|
||||
// This constructor might be called after the launch, so we must refresh here too.
|
||||
// This can happen if we activate the action set after the launch.
|
||||
refresh(fContextService.getActiveContext());
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispose() {
|
||||
|
|
Loading…
Add table
Reference in a new issue