Bug 8322 - Detail evaluation timeout overwrites previous value
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/ASTEvaluationEngine.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/ASTEvaluationEngine.java
index 405a868..994a327 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/ASTEvaluationEngine.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/ASTEvaluationEngine.java
@@ -24,6 +24,7 @@
import org.eclipse.jdt.debug.eval.ast.model.IVariable;
import org.eclipse.jdt.internal.debug.eval.ast.engine.ASTAPIVisitor;
import org.eclipse.jdt.internal.debug.eval.ast.engine.InstructionSequence;
+import org.eclipse.jdt.internal.debug.core.model.JDIThread;
import org.eclipse.jdt.internal.debug.eval.EvaluationResult;
@@ -115,12 +116,19 @@
public void run() {
while (!fEvaluationComplete && !fEvaluationCancelled) {
try {
- Thread.currentThread().sleep(3000); // 3 second timeout for now
+ Thread.currentThread().sleep(10000); // 10 second timeout for now
} catch(InterruptedException e) {
}
if (!fEvaluationComplete) {
- if (!listener.evaluationTimedOut(thread)) {
- fEvaluationCancelled= true;
+ try {
+ thread.suspend();
+ if (!listener.evaluationTimedOut(thread)) {
+ fEvaluationCancelled= true;
+ } else {
+ // Keep waiting
+ thread.resume();
+ }
+ } catch(DebugException e) {
}
}
}