use app invokeLater in toolwindow CommandProcessor to avoid transaction assertions (EA-82213)

This commit is contained in:
peter
2016-05-13 16:15:14 +02:00
parent b479dd2d1c
commit 9a2d188dad
@@ -81,13 +81,16 @@ public final class CommandProcessor implements Runnable {
final boolean queueNext = myCommandCount > 0;
Application application = ApplicationManager.getApplication();
ModalityState modalityState = Registry.is("ide.perProjectModality") ? ModalityState.defaultModalityState() : ModalityState.NON_MODAL;
application.getInvokator().invokeLater(command, modalityState, expire == null ? application.getDisposed() : expire).doWhenDone(new Runnable() {
public void run() {
application.invokeLater(() -> {
try {
command.run();
}
finally {
if (queueNext) {
CommandProcessor.this.run();
this.run();
}
}
});
}, modalityState, expire == null ? application.getDisposed() : expire);
}
}