private ID createItemImpl(@NotNull String uid) {
    final TBItem item;
    if (myCustomEsc != null && uid.equals(myCustomEsc.getUid())) {
      item = myCustomEsc;
    } else {
      item = myItems.findItem(uid);
    }

    if (item == null) {
      if (LOG.isDebugEnabled()) {
        // Theoretically possible when:
        // (1) EDT expand ActionGroup and call selectVisibleItemsToShow (that schedules next step in AppKit)
        // (2) AppKit going to create items passed from prev step, but paused by task-manager
        // (3) EDT re-expand ActionGroup and cleared (or refilled with new actions) items (and call selectVisibleItemsToShow with new set)
        // => can't find item from (1) in new set of items.
        // But container will be refilled with new items soon (because of second call selectVisibleItemsToShow from (3)).
        LOG.debug("can't create item %s | %s", uid, myItems.getDescription());
      }
      return ID.NIL;
    }
    return item.createNativePeer();
  }
private ID createItemImpl(@NotNull String uid)