Bug 80977 - transient test failures
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIStackFrame.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIStackFrame.java
index dce9f45..5b1078e 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIStackFrame.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIStackFrame.java
@@ -437,6 +437,8 @@
} catch (DebugException exception) {
if (!getThread().isSuspended()) {
thisObject= null;
+ System.out.println(">> Thread not suspended, removed 'this' <<");
+ exception.printStackTrace(System.out);
} else {
throw exception;
}
@@ -449,6 +451,7 @@
// removal of 'this'
fVariables.remove(0);
index= 0;
+ System.out.println("\t>>previous 'this' not null");
} else {
if (oldThisObject == null && thisObject != null) {
// creation of 'this'
@@ -609,27 +612,35 @@
return null;
}
IVariable[] variables = getVariables();
+ System.out.println("findVariable(" + varName +")");
IJavaVariable thisVariable= null;
for (int i = 0; i < variables.length; i++) {
IJavaVariable var = (IJavaVariable) variables[i];
+ System.out.println("\tcomparing local: " + var.getName());
if (var.getName().equals(varName)) {
+ System.out.println("\t>>found");
return var;
}
if (var instanceof JDIThisVariable) {
// save for later - check for instance and static vars
thisVariable= var;
+ System.out.println("\t>>[cache 'this']");
}
}
if (thisVariable != null) {
IVariable[] thisChildren = thisVariable.getValue().getVariables();
+ System.out.println("\t>>searching field members of 'this'");
for (int i = 0; i < thisChildren.length; i++) {
IJavaVariable var= (IJavaVariable) thisChildren[i];
+ System.out.println("\tcomparing field: " + var.getName());
if (var.getName().equals(varName)) {
+ System.out.println("\t>>found");
return var;
}
}
}
+ System.out.println("\t>>no matches");
return null;