if (currentChange != ongoingChange) {
applyCurrentChange();
if (commandStack.getUndoCommand() instanceof PlaceHolderCommand) {
throw new IllegalStateException();
}
PlaceHolderCommand placeholderCommand = new PlaceHolderCommand(ongoingChange.getLabel());
ignoreEvents = true;
try {
commandStack.execute(placeholderCommand);
} finally {
ignoreEvents = false;