void (@NotNull Runnable action) { if (CommandLog.LOG.isDebugEnabled()) { CommandLog.LOG.debug("runUndoTransparentAction: " + action + ", in command = " + (myCurrentCommand != null) + ", in transparent action = " + isUndoTransparentActionInProgress()); } if (myUndoTransparentCount++ == 0) { eventPublisher.undoTransparentActionStarted(); } try { action.run(); } finally { if (myUndoTransparentCount == 1) { eventPublisher.beforeUndoTransparentActionFinished(); } if (--myUndoTransparentCount == 0) { eventPublisher.undoTransparentActionFinished(); } } }