}
public static String setFieldValue(String name, String exp) {
ThreadReference threadRef = checkAndGetCurrentThread();
SuspendThreadStack threadStack = SuspendThreadStack.getInstance();
Debugger debugger = Debugger.getInstance();
VirtualMachine vm = debugger.getVm();
try {
ParseResult result = AstTreeFactory.getExpressionAst(exp);
if (result.hasError()) {
return result.getErrorMsg();
}
Object obj = evalTreeNode(result.getTree());
Value value = null;
if (obj instanceof Integer) {
value = vm.mirrorOf(((Integer)obj).intValue());
} else if (obj instanceof Boolean) {
value = vm.mirrorOf(((Boolean)obj).booleanValue());
} else if (obj instanceof String) {
value = vm.mirrorOf((String)obj);
} else {
value = (Value)obj;
}
StackFrame stackFrame = threadRef.frame(threadStack.getCurFrame());
LocalVariable localVariable;
localVariable = stackFrame.visibleVariableByName(name);
if (localVariable != null) {
stackFrame.setValue(localVariable, value);
} else {