From 89ea50a1bd3e46e9b92019026975c52528afb4b7 Mon Sep 17 00:00:00 2001 From: Vassiliy Kudryashov Date: Fri, 7 Jun 2013 19:51:04 +0400 Subject: [PATCH] IDEA-108207 Rerun process in Run tool window throws NPE --- .../lang-api/src/com/intellij/execution/RunnerRegistry.java | 2 +- .../src/com/intellij/execution/ProgramRunnerUtil.java | 4 ++-- .../src/com/intellij/execution/impl/RunnerRegistryImpl.java | 3 ++- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/platform/lang-api/src/com/intellij/execution/RunnerRegistry.java b/platform/lang-api/src/com/intellij/execution/RunnerRegistry.java index 43c06cd84c50..39eb47de921d 100644 --- a/platform/lang-api/src/com/intellij/execution/RunnerRegistry.java +++ b/platform/lang-api/src/com/intellij/execution/RunnerRegistry.java @@ -30,7 +30,7 @@ public abstract class RunnerRegistry implements ApplicationComponent { public abstract boolean hasRunner(@NotNull final String executorId, @NotNull final RunProfile settings); @Nullable - public abstract ProgramRunner getRunner(final String executorId, final RunProfile settings); + public abstract ProgramRunner getRunner(@NotNull final String executorId, final RunProfile settings); public abstract ProgramRunner[] getRegisteredRunners(); diff --git a/platform/lang-impl/src/com/intellij/execution/ProgramRunnerUtil.java b/platform/lang-impl/src/com/intellij/execution/ProgramRunnerUtil.java index 76dea54e0d13..c4de58e4fb11 100644 --- a/platform/lang-impl/src/com/intellij/execution/ProgramRunnerUtil.java +++ b/platform/lang-impl/src/com/intellij/execution/ProgramRunnerUtil.java @@ -48,8 +48,8 @@ public class ProgramRunnerUtil { } @Nullable - public static ProgramRunner getRunner(final String executorId, final RunnerAndConfigurationSettings configuration) { - return RunnerRegistry.getInstance().getRunner(executorId, configuration.getConfiguration()); + public static ProgramRunner getRunner(@NotNull final String executorId, final RunnerAndConfigurationSettings configuration) { + return configuration == null ? null : RunnerRegistry.getInstance().getRunner(executorId, configuration.getConfiguration()); } public static void executeConfiguration(@NotNull final Project project, diff --git a/platform/lang-impl/src/com/intellij/execution/impl/RunnerRegistryImpl.java b/platform/lang-impl/src/com/intellij/execution/impl/RunnerRegistryImpl.java index 5d93be4d8697..08e9541c265f 100644 --- a/platform/lang-impl/src/com/intellij/execution/impl/RunnerRegistryImpl.java +++ b/platform/lang-impl/src/com/intellij/execution/impl/RunnerRegistryImpl.java @@ -51,7 +51,8 @@ public class RunnerRegistryImpl extends RunnerRegistry { } @Override - public ProgramRunner getRunner(final String executorId, final RunProfile settings) { + public ProgramRunner getRunner(@NotNull final String executorId, final RunProfile settings) { + if (settings == null) return null; final ProgramRunner[] runners = getRegisteredRunners(); for (final ProgramRunner runner : runners) { if (runner.canRun(executorId, settings)) {