IDEA-129313 Throwable at com.intellij.debugger.engine.SuspendContextImpl.a
authorEgor.Ushakov <egor.ushakov@jetbrains.com>
Tue, 2 Sep 2014 12:00:04 +0000 (16:00 +0400)
committerEgor.Ushakov <egor.ushakov@jetbrains.com>
Tue, 2 Sep 2014 12:01:42 +0000 (16:01 +0400)
java/debugger/impl/src/com/intellij/debugger/actions/JavaReferringObjectsValue.java
java/debugger/impl/src/com/intellij/debugger/engine/JavaValue.java
platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/XDebuggerExpressionComboBox.java
resources-en/src/messages/DebuggerBundle.properties

index 815ddd231f14c674b2e643ed17328d6c31c2866b..a362e7d7caffffb7da41bab27ce989b931615843 100644 (file)
@@ -61,6 +61,7 @@ public class JavaReferringObjectsValue extends JavaValue {
 
   @Override
   public void computeChildren(@NotNull final XCompositeNode node) {
+    if (checkContextNotResumed(node)) return;
     getEvaluationContext().getDebugProcess().getManagerThread().schedule(
       new SuspendContextCommandImpl(getEvaluationContext().getSuspendContext()) {
         @Override
index 7b0ffffe98d5fce108c53ef92938d0951982d34e..fd3a15bd8943c43878b56a8e9e69a0badf2bd714 100644 (file)
@@ -15,6 +15,7 @@
  */
 package com.intellij.debugger.engine;
 
+import com.intellij.debugger.DebuggerBundle;
 import com.intellij.debugger.DebuggerInvocationUtil;
 import com.intellij.debugger.SourcePosition;
 import com.intellij.debugger.actions.JavaReferringObjectsValue;
@@ -273,7 +274,7 @@ public class JavaValue extends XNamedValue implements NodeDescriptorProvider, XV
 
   @Override
   public void computeChildren(@NotNull final XCompositeNode node) {
-    if (myEvaluationContext.getSuspendContext().isResumed()) return;
+    if (checkContextNotResumed(node)) return;
     myEvaluationContext.getDebugProcess().getManagerThread().schedule(new SuspendContextCommandImpl(myEvaluationContext.getSuspendContext()) {
       @Override
       public Priority getPriority() {
@@ -335,6 +336,14 @@ public class JavaValue extends XNamedValue implements NodeDescriptorProvider, XV
     });
   }
 
+  protected boolean checkContextNotResumed(XCompositeNode node) {
+    if (myEvaluationContext.getSuspendContext().isResumed()) {
+      node.setErrorMessage(DebuggerBundle.message("error.context.has.changed"));
+      return true;
+    }
+    return false;
+  }
+
   @Override
   public void computeSourcePosition(@NotNull final XNavigatable navigatable) {
     if (myEvaluationContext.getSuspendContext().isResumed()) return;
index 3039d2acda7f5d132f5348d2f393d4c75ac9dfe1..257181809cee2138f93aa3914dc2656413039c7e 100644 (file)
@@ -114,7 +114,7 @@ public class XDebuggerExpressionComboBox extends XDebuggerEditorBase {
 
   @Override
   protected void onHistoryChanged() {
-    fillComboBox();
+    //fillComboBox();
   }
 
   private void fillComboBox() {
index 18a0df9dcc8df59420591e95083c9565a1784f77..c718102356e6b0be293d4bb4ec586e35c2c2d73e 100644 (file)
@@ -446,4 +446,5 @@ action.kill.process.text=Kill Process
 action.kill.process.description=Forcibly terminate debugged application
 evaluation.error.unknown.method.return.type=Cannot resolve method return type: {0}
 rule.name.group.by.class=Group by class
-rule.name.group.by.package=Group by package
\ No newline at end of file
+rule.name.group.by.package=Group by package
+error.context.has.changed=Context has changed, operation is not possible
\ No newline at end of file