void (@NotNull Consumer<? super ProjectViewNodeDecorator> consumer) { if (myProject == null || myProject.isDisposed()) return; // empty or disposed for (ProjectViewNodeDecorator decorator : EP.getExtensions(myProject)) { try { consumer.accept(decorator); } catch (IndexNotReadyException exception) { throw new ProcessCanceledException(exception); } catch (ProcessCanceledException exception) { throw exception; } catch (Exception exception) { LOG.warn("unexpected error in " + decorator, exception); } } }