Bug 106489 - CCE from watch Expression
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ASTEvaluationEngine.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ASTEvaluationEngine.java
index b68d48f..a4e5da1 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ASTEvaluationEngine.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ASTEvaluationEngine.java
@@ -194,7 +194,7 @@
// receivingType= (IJavaReferenceType) frame.getThis().getJavaType();
// }
- unit = parseCompilationUnit(mapper.getSource(receivingType, javaProject).toCharArray(), mapper.getCompilationUnitName(), javaProject);
+ unit = parseCompilationUnit(mapper.getSource(receivingType, javaProject, frame.isStatic()).toCharArray(), mapper.getCompilationUnitName(), javaProject);
} catch (CoreException e) {
InstructionSequence expression= new InstructionSequence(snippet);
expression.addError(e.getStatus().getMessage());
@@ -258,7 +258,7 @@
IJavaType[] javaTypes = getDebugTarget().getJavaTypes(recTypeName);
if (javaTypes.length > 0) {
IJavaReferenceType recType = (IJavaReferenceType) javaTypes[0];
- unit = parseCompilationUnit(mapper.getSource(recType, getJavaProject()).toCharArray(), mapper.getCompilationUnitName(), javaProject);
+ unit = parseCompilationUnit(mapper.getSource(recType, getJavaProject(), false).toCharArray(), mapper.getCompilationUnitName(), javaProject);
} else {
IStatus status = new Status(IStatus.ERROR, JDIDebugPlugin.getUniqueIdentifier(), JDIDebugPlugin.INTERNAL_ERROR,
EvaluationEngineMessages.ASTEvaluationEngine_1, null);
@@ -305,7 +305,7 @@
mapper = new EvaluationSourceGenerator(new String[0], new String[0], snippet);
try {
- unit = parseCompilationUnit(mapper.getSource(type, javaProject).toCharArray(), mapper.getCompilationUnitName(), javaProject);
+ unit = parseCompilationUnit(mapper.getSource(type, javaProject, false).toCharArray(), mapper.getCompilationUnitName(), javaProject);
} catch (CoreException e) {
InstructionSequence expression= new InstructionSequence(snippet);
expression.addError(e.getStatus().getMessage());
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/EvaluationSourceGenerator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/EvaluationSourceGenerator.java
index 66d4573..910ba35 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/EvaluationSourceGenerator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/EvaluationSourceGenerator.java
@@ -180,15 +180,15 @@
return objectToEvaluationSourceMapper;
}
- public String getSource(IJavaReferenceType type, IJavaProject javaProject) throws DebugException {
+ public String getSource(IJavaReferenceType type, IJavaProject javaProject, boolean isStatic) throws DebugException {
if (fSource == null) {
String baseSource= getTypeSourceFromProject(type.getName(), javaProject);
int lineNumber= getLineNumber((JDIReferenceType)type);
if (baseSource != null && lineNumber != -1) {
- createEvaluationSourceFromSource(baseSource, type.getName(), lineNumber, false, javaProject);
+ createEvaluationSourceFromSource(baseSource, type.getName(), lineNumber, isStatic, javaProject);
}
if (fSource == null) {
- BinaryBasedSourceGenerator mapper= getInstanceSourceMapper((JDIReferenceType) type, false);
+ BinaryBasedSourceGenerator mapper= getInstanceSourceMapper((JDIReferenceType) type, isStatic);
createEvaluationSourceFromJDIObject(mapper);
}
}