@Override public void onSuccess(@NotNull final Breakpoint result) { ApplicationManager.getApplication() .invokeLater( () -> { // We will only do the selection if the id for this async task matches the // latest // user clicked item. This prevents multiple (and possibly out of order) // selections getting queued up. if (id.equals(navigatedSnapshotId)) { if (!Boolean.TRUE.equals(result.getIsFinalState()) || result.getStackFrames() == null) { getBreakpointHandler().navigateTo(result); if (result.getStackFrames() == null) { navigateToBreakpoint(result); } return; } navigateToBreakpoint(result); } }, ModalityState.NON_MODAL); }