void (@NotNull String dataId, boolean error) { if (!Registry.is("actionSystem.update.actions.warn.dataRules.on.edt")) return; if (EDT.isCurrentThreadEdt() && SlowOperations.isInSection(SlowOperations.ACTION_UPDATE) && ActionUpdater.Companion.currentInEDTOperationName() != null && !SlowOperations.isAlwaysAllowed()) { String message = "'" + dataId + "' is requested on EDT by " + ActionUpdater.Companion.currentInEDTOperationName() + ". See ActionUpdateThread javadoc."; if (!Strings.areSameInstance(message, ourEDTWarnsInterner.intern(message))) return; Throwable th = error ? new Throwable(message) : null; AppExecutorUtil.getAppExecutorService().execute(() -> { if (error) { LOG.error(th); } else { LOG.warn(message); } }); } }