@Override
  public void dispose() {
    myState = myState.dispose();
    Arrays.stream(getAncestorListeners()).forEach(l -> removeAncestorListener(l));
    Editor editor = getEditor();
    if (editor != null) {
      cancelAllFlushRequests();
      mySpareTimeAlarm.cancelAllRequests();
      disposeEditor();
      editor.putUserData(CONSOLE_VIEW_IN_EDITOR_VIEW, null);
      synchronized (LOCK) {
        myDeferredBuffer.clear();
        myEditor = null;
      }
    }
  }
@Override
  public void dispose()