From 8aac5fa07188930053ebbfbf6b4902246e3f997f Mon Sep 17 00:00:00 2001 From: Vladimir Krivosheev Date: Thu, 18 Sep 2014 16:18:15 +0200 Subject: [PATCH] don't load data for obsolete suspend context --- .../src/org/jetbrains/debugger/DeclarativeScope.java | 4 ++++ .../src/org/jetbrains/debugger/values/ValueManager.java | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/platform/script-debugger/backend/src/org/jetbrains/debugger/DeclarativeScope.java b/platform/script-debugger/backend/src/org/jetbrains/debugger/DeclarativeScope.java index 60eb24bc4339..6c1726b5e542 100644 --- a/platform/script-debugger/backend/src/org/jetbrains/debugger/DeclarativeScope.java +++ b/platform/script-debugger/backend/src/org/jetbrains/debugger/DeclarativeScope.java @@ -48,6 +48,10 @@ public abstract class DeclarativeScope extend } protected final void loadScopeObjectProperties(@NotNull ObjectValue value, @NotNull final AsyncResult> result) { + if (valueManager.rejectIfObsolete(result)) { + return; + } + value.getProperties().doWhenDone(new Consumer>() { @Override public void consume(List variables) { diff --git a/platform/script-debugger/backend/src/org/jetbrains/debugger/values/ValueManager.java b/platform/script-debugger/backend/src/org/jetbrains/debugger/values/ValueManager.java index 8ea8d7d97603..5321d18f85ed 100644 --- a/platform/script-debugger/backend/src/org/jetbrains/debugger/values/ValueManager.java +++ b/platform/script-debugger/backend/src/org/jetbrains/debugger/values/ValueManager.java @@ -1,5 +1,6 @@ package org.jetbrains.debugger.values; +import com.intellij.openapi.util.ActionCallback; import org.jetbrains.annotations.NotNull; import java.util.concurrent.atomic.AtomicInteger; @@ -40,4 +41,12 @@ public abstract class ValueManager { public final void markObsolete() { obsolete = true; } + + public final boolean rejectIfObsolete(@NotNull ActionCallback result) { + if (isObsolete()) { + result.reject("Obsolete context"); + return true; + } + return false; + } } \ No newline at end of file