-1) });
return SUSPEND;
}
IJavaDebugTarget target = (IJavaDebugTarget) thread
.getDebugTarget();
IAstEvaluationEngine engine = getEvaluationEngine(target,
project);
if (engine == null) {
// If no engine is available, suspend
return SUSPEND;
}
ICompiledExpression expression = lineBreakpoint
.getExpression(thread);
if (expression == null) {
expression = engine.getCompiledExpression(condition, frame);
lineBreakpoint.setExpression(thread, expression);
}
if (expression.hasErrors()) {
fireConditionHasErrors(lineBreakpoint,
getMessages(expression));
return SUSPEND;
}
Object lock = listener.getLock();
synchronized (lock) {
engine.evaluateExpression(expression, frame, listener,
DebugEvent.EVALUATION_IMPLICIT, false);
// TODO: timeout?
try {
lock.wait();
} catch (InterruptedException e) {