mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-203047 Disallow JavaEE run configurations running in parallel but preserve showing Update dialog while rerun them
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
package com.intellij.execution.configurations;
|
||||
|
||||
import com.intellij.execution.BeforeRunTask;
|
||||
import com.intellij.execution.runners.ExecutionEnvironment;
|
||||
import com.intellij.execution.runners.ProgramRunner;
|
||||
import com.intellij.openapi.actionSystem.DataKey;
|
||||
import com.intellij.openapi.options.SettingsEditor;
|
||||
@@ -168,4 +169,8 @@ public interface RunConfiguration extends RunProfile, Cloneable {
|
||||
|
||||
default void setAllowRunningInParallel(boolean value) {
|
||||
}
|
||||
|
||||
default boolean processRunSame(@NotNull ExecutionEnvironment environment) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -397,13 +397,19 @@ public abstract class ExecutionManagerImpl extends ExecutionManager implements D
|
||||
List<RunContentDescriptor> runningToStop = ContainerUtil.concat(runningOfTheSameType, runningIncompatible);
|
||||
if (!runningToStop.isEmpty()) {
|
||||
if (configuration != null) {
|
||||
if (!runningOfTheSameType.isEmpty()
|
||||
&& (runningOfTheSameType.size() > 1 || contentToReuse == null || runningOfTheSameType.get(0) != contentToReuse) &&
|
||||
!userApprovesStopForSameTypeConfigurations(environment.getProject(), configuration.getName(), runningOfTheSameType.size())) {
|
||||
return;
|
||||
if (!runningOfTheSameType.isEmpty() &&
|
||||
(runningOfTheSameType.size() > 1 || contentToReuse == null || runningOfTheSameType.get(0) != contentToReuse)) {
|
||||
|
||||
if (configuration.getConfiguration().processRunSame(environment)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!userApprovesStopForSameTypeConfigurations(environment.getProject(), configuration.getName(), runningOfTheSameType.size())) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (!runningIncompatible.isEmpty()
|
||||
&& !userApprovesStopForIncompatibleConfigurations(myProject, configuration.getName(), runningIncompatible)) {
|
||||
if (!runningIncompatible.isEmpty() &&
|
||||
!userApprovesStopForIncompatibleConfigurations(myProject, configuration.getName(), runningIncompatible)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user