ID (@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(); }