diff --git a/java/debugger/impl/src/com/intellij/debugger/actions/InterruptThreadAction.java b/java/debugger/impl/src/com/intellij/debugger/actions/InterruptThreadAction.java
index 0b3515ff5314..bceea0997214 100644
--- a/java/debugger/impl/src/com/intellij/debugger/actions/InterruptThreadAction.java
+++ b/java/debugger/impl/src/com/intellij/debugger/actions/InterruptThreadAction.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2016 JetBrains s.r.o.
+ * Copyright 2000-2017 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.
@@ -27,7 +27,7 @@ import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.Presentation;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.MessageType;
-import com.intellij.xdebugger.impl.XDebugSessionImpl;
+import com.intellij.xdebugger.impl.XDebuggerManagerImpl;
import java.util.ArrayList;
import java.util.List;
@@ -66,7 +66,7 @@ public class InterruptThreadAction extends DebuggerAction{
}
if (unsupported) {
final Project project = debugProcess.getProject();
- XDebugSessionImpl.NOTIFICATION_GROUP
+ XDebuggerManagerImpl.NOTIFICATION_GROUP
.createNotification("Thread operation 'interrupt' is not supported by VM", MessageType.INFO).notify(project);
}
}
diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessEvents.java b/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessEvents.java
index 43b4a69a3005..fe9c056a436d 100644
--- a/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessEvents.java
+++ b/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessEvents.java
@@ -41,6 +41,7 @@ import com.intellij.openapi.util.Pair;
import com.intellij.xdebugger.XDebugSession;
import com.intellij.xdebugger.breakpoints.XBreakpoint;
import com.intellij.xdebugger.impl.XDebugSessionImpl;
+import com.intellij.xdebugger.impl.XDebuggerManagerImpl;
import com.sun.jdi.InternalException;
import com.sun.jdi.ThreadReference;
import com.sun.jdi.VMDisconnectedException;
@@ -442,7 +443,7 @@ public class DebugProcessEvents extends DebugProcessImpl {
final MethodFilter methodFilter = hint.getMethodFilter();
if (methodFilter instanceof NamedMethodFilter && !hint.wasStepTargetMethodMatched()) {
final String message = "Method " + ((NamedMethodFilter)methodFilter).getMethodName() + "() has not been called";
- XDebugSessionImpl.NOTIFICATION_GROUP.createNotification(message, MessageType.INFO).notify(project);
+ XDebuggerManagerImpl.NOTIFICATION_GROUP.createNotification(message, MessageType.INFO).notify(project);
}
if (hint.wasStepTargetMethodMatched() && hint.isResetIgnoreFilters()) {
checkPositionNotFiltered(suspendContext.getThread(), filters -> mySession.resetIgnoreStepFiltersFlag());
@@ -528,7 +529,7 @@ public class DebugProcessEvents extends DebugProcessImpl {
private void notifySkippedBreakpoints(LocatableEvent event) {
if (event != null) {
- XDebugSessionImpl.NOTIFICATION_GROUP
+ XDebuggerManagerImpl.NOTIFICATION_GROUP
.createNotification(DebuggerBundle.message("message.breakpoint.skipped", event.location()), MessageType.INFO)
.notify(getProject());
}
diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessImpl.java b/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessImpl.java
index efd1b9031f4e..ec3b3c97eb5c 100644
--- a/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessImpl.java
+++ b/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessImpl.java
@@ -72,7 +72,10 @@ import com.intellij.psi.PsiManager;
import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.ui.classFilter.ClassFilter;
import com.intellij.ui.classFilter.DebuggerClassFilterProvider;
-import com.intellij.util.*;
+import com.intellij.util.Alarm;
+import com.intellij.util.Consumer;
+import com.intellij.util.EventDispatcher;
+import com.intellij.util.StringBuilderSpinAllocator;
import com.intellij.util.concurrency.Semaphore;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.containers.HashMap;
@@ -80,6 +83,7 @@ import com.intellij.util.ui.UIUtil;
import com.intellij.xdebugger.XDebugSession;
import com.intellij.xdebugger.XSourcePosition;
import com.intellij.xdebugger.impl.XDebugSessionImpl;
+import com.intellij.xdebugger.impl.XDebuggerManagerImpl;
import com.intellij.xdebugger.impl.actions.XDebuggerActions;
import com.sun.jdi.*;
import com.sun.jdi.connect.*;
@@ -612,7 +616,7 @@ public abstract class DebugProcessImpl extends UserDataHolderBase implements Deb
Arrays.stream(ProjectJdkTable.getInstance().getAllJdks())
.filter(sdk -> versionMatch(sdk, version))
.findFirst().ifPresent(sdk -> {
- XDebugSessionImpl.NOTIFICATION_GROUP.createNotification(
+ XDebuggerManagerImpl.NOTIFICATION_GROUP.createNotification(
DebuggerBundle.message("message.remote.jre.version.mismatch",
version,
runjre != null ? runjre.getVersionString() : "unknown",
diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/ThreadBlockedMonitor.java b/java/debugger/impl/src/com/intellij/debugger/engine/ThreadBlockedMonitor.java
index 2b50d7ce07a4..58e473d9b265 100644
--- a/java/debugger/impl/src/com/intellij/debugger/engine/ThreadBlockedMonitor.java
+++ b/java/debugger/impl/src/com/intellij/debugger/engine/ThreadBlockedMonitor.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2016 JetBrains s.r.o.
+ * Copyright 2000-2017 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.
@@ -26,7 +26,7 @@ import com.intellij.openapi.Disposable;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.util.Disposer;
import com.intellij.openapi.util.registry.Registry;
-import com.intellij.xdebugger.impl.XDebugSessionImpl;
+import com.intellij.xdebugger.impl.XDebuggerManagerImpl;
import com.sun.jdi.IncompatibleThreadStateException;
import com.sun.jdi.ObjectReference;
import com.sun.jdi.ThreadReference;
@@ -89,7 +89,7 @@ public class ThreadBlockedMonitor {
private static void onThreadBlocked(@NotNull final ThreadReference blockedThread,
@NotNull final ThreadReference blockingThread,
final DebugProcessImpl process) {
- XDebugSessionImpl.NOTIFICATION_GROUP.createNotification(
+ XDebuggerManagerImpl.NOTIFICATION_GROUP.createNotification(
DebuggerBundle.message("status.thread.blocked.by", blockedThread.name(), blockingThread.name()),
DebuggerBundle.message("status.thread.blocked.by.resume", blockingThread.name()),
NotificationType.INFORMATION, (notification, event) -> {
diff --git a/java/debugger/impl/src/com/intellij/debugger/impl/DebuggerSession.java b/java/debugger/impl/src/com/intellij/debugger/impl/DebuggerSession.java
index b827d32c9172..a341bb317a85 100644
--- a/java/debugger/impl/src/com/intellij/debugger/impl/DebuggerSession.java
+++ b/java/debugger/impl/src/com/intellij/debugger/impl/DebuggerSession.java
@@ -60,7 +60,7 @@ import com.intellij.util.ui.UIUtil;
import com.intellij.xdebugger.AbstractDebuggerSession;
import com.intellij.xdebugger.XDebugSession;
import com.intellij.xdebugger.XSourcePosition;
-import com.intellij.xdebugger.impl.XDebugSessionImpl;
+import com.intellij.xdebugger.impl.XDebuggerManagerImpl;
import com.intellij.xdebugger.impl.actions.XDebuggerActions;
import com.intellij.xdebugger.impl.evaluate.quick.common.ValueLookupManager;
import com.sun.jdi.ObjectCollectedException;
@@ -485,7 +485,7 @@ public class DebuggerSession implements AbstractDebuggerSession {
if (thread != null) {
List> descriptors = DebuggerUtilsEx.getEventDescriptors(suspendContext);
if (!descriptors.isEmpty()) {
- XDebugSessionImpl.NOTIFICATION_GROUP.createNotification(
+ XDebuggerManagerImpl.NOTIFICATION_GROUP.createNotification(
DebuggerBundle.message("status.breakpoint.reached.in.thread", thread.name()),
DebuggerBundle.message("status.breakpoint.reached.in.thread.switch"),
NotificationType.INFORMATION, new NotificationListener() {
diff --git a/java/debugger/impl/src/com/intellij/debugger/impl/SourceCodeChecker.java b/java/debugger/impl/src/com/intellij/debugger/impl/SourceCodeChecker.java
index 446099f45db4..6f1f29b3b7ce 100644
--- a/java/debugger/impl/src/com/intellij/debugger/impl/SourceCodeChecker.java
+++ b/java/debugger/impl/src/com/intellij/debugger/impl/SourceCodeChecker.java
@@ -44,7 +44,7 @@ import com.intellij.psi.javadoc.PsiDocComment;
import com.intellij.ui.AppUIUtil;
import com.intellij.util.ThreeState;
import com.intellij.util.containers.ContainerUtil;
-import com.intellij.xdebugger.impl.XDebugSessionImpl;
+import com.intellij.xdebugger.impl.XDebuggerManagerImpl;
import com.sun.jdi.*;
import one.util.streamex.IntStreamEx;
import one.util.streamex.StreamEx;
@@ -150,7 +150,7 @@ public class SourceCodeChecker {
DebuggerBundle.message("warning.source.code.not.match")));
}
else {
- XDebugSessionImpl.NOTIFICATION_GROUP
+ XDebuggerManagerImpl.NOTIFICATION_GROUP
.createNotification(DebuggerBundle.message("warning.source.code.not.match"), NotificationType.WARNING)
.notify(project);
}
diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointManager.java b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointManager.java
index 5c32484fe45f..10d558cf9b3d 100644
--- a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointManager.java
+++ b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointManager.java
@@ -54,7 +54,7 @@ import com.intellij.xdebugger.XDebuggerUtil;
import com.intellij.xdebugger.XSourcePosition;
import com.intellij.xdebugger.breakpoints.*;
import com.intellij.xdebugger.impl.DebuggerSupport;
-import com.intellij.xdebugger.impl.XDebugSessionImpl;
+import com.intellij.xdebugger.impl.XDebuggerManagerImpl;
import com.intellij.xdebugger.impl.breakpoints.XBreakpointBase;
import com.intellij.xdebugger.impl.breakpoints.XBreakpointManagerImpl;
import com.intellij.xdebugger.impl.breakpoints.XDependentBreakpointManager;
@@ -118,7 +118,7 @@ public class BreakpointManager {
private static boolean checkAndNotifyPossiblySlowBreakpoint(XBreakpoint breakpoint) {
XBreakpointProperties properties = breakpoint.getProperties();
if (breakpoint.isEnabled() && properties instanceof JavaMethodBreakpointProperties && !((JavaMethodBreakpointProperties)properties).EMULATED) {
- XDebugSessionImpl.NOTIFICATION_GROUP
+ XDebuggerManagerImpl.NOTIFICATION_GROUP
.createNotification(DebuggerBundle.message("method.breakpoints.slowness.warning"), MessageType.WARNING)
.notify(((XBreakpointBase)breakpoint).getProject());
return true;
diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/XDebugSessionImpl.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/XDebugSessionImpl.java
index cc051432383f..5a81d9f6e004 100644
--- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/XDebugSessionImpl.java
+++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/XDebugSessionImpl.java
@@ -43,7 +43,6 @@ import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.MessageType;
import com.intellij.openapi.util.Comparing;
import com.intellij.openapi.util.Disposer;
-import com.intellij.openapi.wm.ToolWindowId;
import com.intellij.ui.AppUIUtil;
import com.intellij.util.EventDispatcher;
import com.intellij.util.SmartList;
@@ -82,8 +81,11 @@ import java.util.concurrent.atomic.AtomicBoolean;
*/
public class XDebugSessionImpl implements XDebugSession {
private static final Logger LOG = Logger.getInstance("#com.intellij.xdebugger.impl.XDebugSessionImpl");
- public static final NotificationGroup NOTIFICATION_GROUP = NotificationGroup.toolWindowGroup("Debugger messages", ToolWindowId.DEBUG,
- false);
+
+ /** @deprecated Use {@link XDebuggerManagerImpl#NOTIFICATION_GROUP} */
+ @Deprecated
+ public static final NotificationGroup NOTIFICATION_GROUP = XDebuggerManagerImpl.NOTIFICATION_GROUP;
+
private XDebugProcess myDebugProcess;
private final Map, CustomizedBreakpointPresentation> myRegisteredBreakpoints =
new THashMap<>();
@@ -948,7 +950,7 @@ public class XDebugSessionImpl implements XDebugSession {
listener.hyperlinkUpdate(event);
}
};
- NOTIFICATION_GROUP.createNotification("", message, type.toNotificationType(), notificationListener).notify(myProject);
+ XDebuggerManagerImpl.NOTIFICATION_GROUP.createNotification("", message, type.toNotificationType(), notificationListener).notify(myProject);
}
private class MyBreakpointListener implements XBreakpointListener> {
diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/XDebuggerManagerImpl.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/XDebuggerManagerImpl.java
index ea70e07884fc..f7f8f527be6e 100644
--- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/XDebuggerManagerImpl.java
+++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/XDebuggerManagerImpl.java
@@ -26,6 +26,7 @@ import com.intellij.execution.ui.ExecutionConsole;
import com.intellij.execution.ui.RunContentDescriptor;
import com.intellij.execution.ui.RunContentManager;
import com.intellij.execution.ui.RunContentWithExecutorListener;
+import com.intellij.notification.NotificationGroup;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.components.*;
import com.intellij.openapi.editor.Document;
@@ -36,6 +37,7 @@ import com.intellij.openapi.fileEditor.FileEditorManagerListener;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.startup.StartupManager;
import com.intellij.openapi.vfs.VirtualFile;
+import com.intellij.openapi.wm.ToolWindowId;
import com.intellij.util.SmartList;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.messages.MessageBus;
@@ -68,7 +70,11 @@ import java.util.concurrent.atomic.AtomicReference;
@State(name = XDebuggerManagerImpl.COMPONENT_NAME, storages = @Storage(StoragePathMacros.WORKSPACE_FILE))
public class XDebuggerManagerImpl extends XDebuggerManager
implements NamedComponent, PersistentStateComponent {
+
@NonNls public static final String COMPONENT_NAME = "XDebuggerManager";
+ public static final NotificationGroup NOTIFICATION_GROUP =
+ NotificationGroup.toolWindowGroup("Debugger messages", ToolWindowId.DEBUG, false);
+
private final Project myProject;
private final XBreakpointManagerImpl myBreakpointManager;
private final XDebuggerWatchesManager myWatchesManager;
diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/tree/nodes/HeadlessValueEvaluationCallback.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/tree/nodes/HeadlessValueEvaluationCallback.java
index 3a5ca39867d1..d240ca60363d 100644
--- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/tree/nodes/HeadlessValueEvaluationCallback.java
+++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/tree/nodes/HeadlessValueEvaluationCallback.java
@@ -23,7 +23,7 @@ import com.intellij.util.Alarm;
import com.intellij.util.concurrency.Semaphore;
import com.intellij.xdebugger.XDebuggerBundle;
import com.intellij.xdebugger.frame.XFullValueEvaluator;
-import com.intellij.xdebugger.impl.XDebugSessionImpl;
+import com.intellij.xdebugger.impl.XDebuggerManagerImpl;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -62,7 +62,7 @@ public class HeadlessValueEvaluationCallback implements XFullValueEvaluator.XFul
public void errorOccurred(@NotNull String errorMessage) {
try {
String message = XDebuggerBundle.message("load.value.task.error", errorMessage);
- XDebugSessionImpl.NOTIFICATION_GROUP.createNotification(message, NotificationType.ERROR).notify(myNode.getTree().getProject());
+ XDebuggerManagerImpl.NOTIFICATION_GROUP.createNotification(message, NotificationType.ERROR).notify(myNode.getTree().getProject());
}
finally {
evaluationComplete(errorMessage);