try {
Field fCancelSearchActionField = callHiearachyClass.getDeclaredField(CallHierarchyTracker.CANCEL_SEARCH_ACTION_ATTRIBUTE);
fCancelSearchActionField.setAccessible(true);
Object cancelSearchActionObj = fCancelSearchActionField.get(callHierarchyPart);
if (!(cancelSearchActionObj instanceof CancelSearchAction)) return;
CancelSearchAction cancelSearchAction = (CancelSearchAction) cancelSearchActionObj;
// TODO: maybe handle InterruptedExcpetions appropriately
while(cancelSearchAction.isEnabled()) {
Thread.sleep(sleepTime());
}
} catch (Exception e) {
Log.error(e);
}