*/
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
- fNode.refresh();
+ fLock.lock();
+ try {
+ fNode.refresh();
+ } finally {
+ fLock.unlock();
+ }
return null;
}
*/
@Override
public boolean isEnabled() {
- fNode = null;
// Get workbench page for the Control View
IWorkbenchPage page = getWorkbenchPage();
return false;
}
+ TargetNodeComponent node = null;
// Check if one or more session are selected
ISelection selection = page.getSelection(ControlView.ID);
if (selection instanceof StructuredSelection) {
component = (TraceControlComponent) component.getParent();
}
if (component != null) {
- fNode = (TargetNodeComponent) component;
+ node = (TargetNodeComponent) component;
}
}
}
}
}
- return fNode != null;
+
+ boolean isEnabled = node != null;
+
+ fLock.lock();
+ try {
+ fNode = null;
+ if (isEnabled) {
+ fNode = node;
+ }
+ } finally {
+ fLock.unlock();
+ }
+
+ return isEnabled;
}
}