IDEA-104484 Console ExceptionFilters are added twice for debugging java app
authorVassiliy <vassiliy.kudryashov@jetbrains.com>
Thu, 5 Jun 2014 08:55:13 +0000 (12:55 +0400)
committerVassiliy <vassiliy.kudryashov@jetbrains.com>
Thu, 5 Jun 2014 08:56:06 +0000 (12:56 +0400)
java/debugger/impl/src/com/intellij/debugger/DefaultDebugEnvironment.java
java/remote-servers/impl/src/com/intellij/remoteServer/impl/runtime/deployment/debug/JavaDebuggerLauncherImpl.java
platform/lang-api/src/com/intellij/execution/configurations/CommandLineState.java
platform/lang-api/src/com/intellij/execution/configurations/SearchScopeProvider.java [new file with mode: 0644]
platform/lang-impl/src/com/intellij/execution/runners/RunContentBuilder.java
plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenConsoleImpl.java

index 5a842e420a0dc5e8e53dd1a539024d4f70183180..76515d8fddfecdf28dbcc841d66ed8c6634a0efa 100644 (file)
@@ -19,10 +19,7 @@ import com.intellij.execution.ExecutionException;
 import com.intellij.execution.ExecutionResult;
 import com.intellij.execution.Executor;
 import com.intellij.execution.configurations.*;
-import com.intellij.execution.filters.ExceptionFilters;
-import com.intellij.execution.filters.TextConsoleBuilder;
 import com.intellij.execution.runners.ProgramRunner;
-import com.intellij.execution.runners.RunContentBuilder;
 import com.intellij.openapi.project.Project;
 import com.intellij.psi.search.GlobalSearchScope;
 
@@ -54,17 +51,11 @@ public class DefaultDebugEnvironment implements DebugEnvironment {
     myRemoteConnection = remoteConnection;
     myPollConnection = pollConnection;
 
-    mySearchScope = RunContentBuilder.createSearchScope(project, runProfile);
+    mySearchScope = SearchScopeProvider.createSearchScope(project, runProfile);
   }
 
   @Override
   public ExecutionResult createExecutionResult() throws ExecutionException {
-    if (myState instanceof CommandLineState) {
-      final TextConsoleBuilder consoleBuilder = ((CommandLineState)myState).getConsoleBuilder();
-      if (consoleBuilder != null) {
-        consoleBuilder.filters(ExceptionFilters.getFilters(mySearchScope));
-      }
-    }
     return myState.execute(myExecutor, myRunner);
   }
 
index 9fb0d3f81e3c43725be2f700fe1307fd62323fc8..0ff284e054dd29e5bcb1646f1793e0f3c74c0c81 100644 (file)
@@ -11,11 +11,11 @@ import com.intellij.diagnostic.logging.LogFilesManager;
 import com.intellij.execution.*;
 import com.intellij.execution.configurations.RemoteConnection;
 import com.intellij.execution.configurations.RunProfile;
+import com.intellij.execution.configurations.SearchScopeProvider;
 import com.intellij.execution.executors.DefaultDebugExecutor;
 import com.intellij.execution.impl.ConsoleViewImpl;
 import com.intellij.execution.process.ProcessHandler;
 import com.intellij.execution.runners.ExecutionEnvironment;
-import com.intellij.execution.runners.RunContentBuilder;
 import com.intellij.execution.ui.RunContentDescriptor;
 import com.intellij.execution.ui.actions.CloseAction;
 import com.intellij.openapi.actionSystem.DefaultActionGroup;
@@ -121,7 +121,7 @@ public class JavaDebuggerLauncherImpl extends JavaDebuggerLauncher {
 
     public RemoteServerDebugEnvironment(Project project, RemoteConnection remoteConnection, RunProfile runProfile) {
       myProject = project;
-      mySearchScope = RunContentBuilder.createSearchScope(project, runProfile);
+      mySearchScope = SearchScopeProvider.createSearchScope(project, runProfile);
       myRemoteConnection = remoteConnection;
       myRunProfile = runProfile;
     }
index bf52dde1a41597f8c9add90103cb5c9ac9148d4e..b2593ef26de6cc822b4e184f8fd47e74aa0c49c5 100644 (file)
@@ -31,6 +31,8 @@ import com.intellij.openapi.actionSystem.Presentation;
 import com.intellij.openapi.actionSystem.ToggleAction;
 import com.intellij.openapi.application.ApplicationManager;
 import com.intellij.openapi.project.DumbAware;
+import com.intellij.openapi.project.Project;
+import com.intellij.psi.search.GlobalSearchScope;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -48,7 +50,11 @@ public abstract class CommandLineState implements RunProfileState {
 
   protected CommandLineState(ExecutionEnvironment environment) {
     myEnvironment = environment;
-    myConsoleBuilder = myEnvironment != null ? TextConsoleBuilderFactory.getInstance().createBuilder(myEnvironment.getProject()) : null;
+    if (myEnvironment != null) {
+      final Project project = myEnvironment.getProject();
+      final GlobalSearchScope searchScope = SearchScopeProvider.createSearchScope(project, myEnvironment.getRunProfile());
+      myConsoleBuilder = TextConsoleBuilderFactory.getInstance().createBuilder(project, searchScope);
+    }
   }
 
   public ExecutionEnvironment getEnvironment() {
diff --git a/platform/lang-api/src/com/intellij/execution/configurations/SearchScopeProvider.java b/platform/lang-api/src/com/intellij/execution/configurations/SearchScopeProvider.java
new file mode 100644 (file)
index 0000000..ea6b158
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2000-2014 JetBrains s.r.o.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.intellij.execution.configurations;
+
+import com.intellij.openapi.module.Module;
+import com.intellij.openapi.project.Project;
+import com.intellij.psi.search.GlobalSearchScope;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+/**
+ * @author Vojtech Krasa
+ */
+public class SearchScopeProvider {
+  @NotNull
+  public static GlobalSearchScope createSearchScope(@NotNull Project project, @Nullable RunProfile runProfile) {
+    Module[] modules = null;
+    if (runProfile instanceof ModuleRunProfile) {
+      modules = ((ModuleRunProfile)runProfile).getModules();
+    }
+    if (modules == null || modules.length == 0) {
+      return GlobalSearchScope.allScope(project);
+    }
+    else {
+      GlobalSearchScope scope = GlobalSearchScope.moduleRuntimeScope(modules[0], true);
+      for (int idx = 1; idx < modules.length; idx++) {
+        Module module = modules[idx];
+        scope = scope.uniteWith(GlobalSearchScope.moduleRuntimeScope(module, true));
+      }
+      return scope;
+    }
+  }
+}
index 4dad34eb6a1b5075a4f39dc87e5cf0ff61fa8335..0cc259a0ab45bf1f92e120e4a21c4871d1f78592 100644 (file)
@@ -18,10 +18,13 @@ package com.intellij.execution.runners;
 import com.intellij.diagnostic.logging.LogConsoleManagerBase;
 import com.intellij.diagnostic.logging.LogFilesManager;
 import com.intellij.diagnostic.logging.OutputFileUtil;
-import com.intellij.execution.*;
-import com.intellij.execution.configurations.ModuleRunProfile;
+import com.intellij.execution.DefaultExecutionResult;
+import com.intellij.execution.ExecutionManager;
+import com.intellij.execution.ExecutionResult;
+import com.intellij.execution.Executor;
 import com.intellij.execution.configurations.RunConfigurationBase;
 import com.intellij.execution.configurations.RunProfile;
+import com.intellij.execution.configurations.SearchScopeProvider;
 import com.intellij.execution.impl.ConsoleViewImpl;
 import com.intellij.execution.process.ProcessHandler;
 import com.intellij.execution.ui.*;
@@ -32,7 +35,6 @@ import com.intellij.ide.actions.ContextHelpAction;
 import com.intellij.openapi.Disposable;
 import com.intellij.openapi.actionSystem.*;
 import com.intellij.openapi.application.ApplicationManager;
-import com.intellij.openapi.module.Module;
 import com.intellij.openapi.project.Project;
 import com.intellij.openapi.util.Disposer;
 import com.intellij.psi.search.GlobalSearchScope;
@@ -74,7 +76,7 @@ public class RunContentBuilder extends LogConsoleManagerBase {
   public RunContentBuilder(ProgramRunner runner,
                            ExecutionResult executionResult,
                            @NotNull ExecutionEnvironment environment) {
-    super(environment.getProject(), createSearchScope(environment.getProject(), environment.getRunProfile()));
+    super(environment.getProject(), SearchScopeProvider.createSearchScope(environment.getProject(), environment.getRunProfile()));
     myRunner = runner;
     myExecutor = environment.getExecutor();
     myManager = new LogFilesManager(environment.getProject(), this, this);
@@ -92,23 +94,10 @@ public class RunContentBuilder extends LogConsoleManagerBase {
     myManager = new LogFilesManager(project, this, this);
   }
 
+  @Deprecated
   @NotNull
   public static GlobalSearchScope createSearchScope(Project project, RunProfile runProfile) {
-    Module[] modules = null;
-    if (runProfile instanceof ModuleRunProfile) {
-      modules = ((ModuleRunProfile)runProfile).getModules();
-    }
-    if (modules == null || modules.length == 0) {
-      return GlobalSearchScope.allScope(project);
-    }
-    else {
-      GlobalSearchScope scope = GlobalSearchScope.moduleRuntimeScope(modules[0], true);
-      for (int idx = 1; idx < modules.length; idx++) {
-        Module module = modules[idx];
-        scope = scope.uniteWith(GlobalSearchScope.moduleRuntimeScope(module, true));
-      }
-      return scope;
-    }
+    return SearchScopeProvider.createSearchScope(project, runProfile);
   }
 
   public ExecutionResult getExecutionResult() {
index 7773291096f99d013d4fbd667d4fe1ce04923683..a6379460a234c4522076ab82f4b53e2bc627f10c 100644 (file)
  */
 package org.jetbrains.idea.maven.project;
 
-import com.intellij.execution.filters.*;
+import com.intellij.execution.filters.HyperlinkInfo;
+import com.intellij.execution.filters.RegexpFilter;
+import com.intellij.execution.filters.TextConsoleBuilder;
+import com.intellij.execution.filters.TextConsoleBuilderFactory;
 import com.intellij.execution.process.ProcessAdapter;
 import com.intellij.execution.process.ProcessEvent;
 import com.intellij.execution.process.ProcessHandler;
@@ -30,7 +33,6 @@ import com.intellij.openapi.vfs.VirtualFile;
 import com.intellij.openapi.wm.ToolWindow;
 import com.intellij.openapi.wm.ToolWindowId;
 import com.intellij.openapi.wm.ToolWindowManager;
-import com.intellij.psi.search.GlobalSearchScope;
 import com.intellij.ui.content.Content;
 import com.intellij.ui.content.ContentFactory;
 import com.intellij.ui.content.MessageView;
@@ -77,8 +79,6 @@ public class MavenConsoleImpl extends MavenConsole {
 
   public static TextConsoleBuilder createConsoleBuilder(final Project project) {
     TextConsoleBuilder builder = TextConsoleBuilderFactory.getInstance().createBuilder(project);
-
-    builder.filters(ExceptionFilters.getFilters(GlobalSearchScope.allScope(project)));
     builder.addFilter(new RegexpFilter(project, CONSOLE_FILTER_REGEXP) {
       @Nullable
       @Override