Program: 39358
Project: 39358
Buggy source:
private void saveProp(String param){
  final Intent intent=new Intent();
switch (mEditType) {
case PROP_TYPE_ACCOUNT_NAME:
    intent.putExtra(IntentConstant.EDIT_ACCOUNT_NAME,param);
  if (mAccountID > 0) {
    accountManager.updateAccountName(mAccountID,param,new Handler(){
      @Override public void handleMessage(      Message msg){
        super.handleMessage(msg);
        setResult(RESULT_OK,intent);
        finish();
      }
    }
);
  }
 else {
    setResult(RESULT_OK,intent);
    finish();
  }
break;
case PROP_TYPE_ACCOUNT_MONEY:
if (TextUtils.isEmpty(param)) param="String_Node_Str";
final double money=Double.parseDouble(param);
intent.putExtra(IntentConstant.EDIT_ACCOUNT_MONEY,money);
if (mAccountID > 0 && money - mMoney != 0) {
accountManager.updateAccountMoney(mAccountID,money - mMoney,new Handler(){
@Override public void handleMessage(Message msg){
super.handleMessage(msg);
Record record=new Record();
record.setIsDel(false);
record.setRemark(money - mMoney > 0 ? "String_Node_Str" : "String_Node_Str");
record.setRecordId(System.currentTimeMillis());
record.setAccountID(mAccountID);
record.setRecordType(Constant.RecordType.CHANGE.getId());
record.setRecordTypeID(Constant.CHANGE_TYPE);
record.setRecordMoney(MoneyUtil.getFormatNum(money - mMoney));
record.setRecordDate(new Date(System.currentTimeMillis()));
recordManager.createNewRecord(record,null);
setResult(RESULT_OK,intent);
finish();
}
}
);
}
 else {
setResult(RESULT_OK,intent);
finish();
}
break;
case PROP_TYPE_ACCOUNT_REMARK:
intent.putExtra(IntentConstant.EDIT_ACCOUNT_REMARK,param);
if (mAccountID > 0) {
accountManager.updateAccountRemark(mAccountID,param,new Handler(){
@Override public void handleMessage(Message msg){
super.handleMessage(msg);
setResult(RESULT_OK,intent);
finish();
}
}
);
}
 else {
setResult(RESULT_OK,intent);
finish();
}
break;
default :
break;
}
}

Fixed version (ground truth):
private void saveProp(String param){
  final Intent intent=new Intent();
switch (mEditType) {
case PROP_TYPE_ACCOUNT_NAME:
    intent.putExtra(IntentConstant.EDIT_ACCOUNT_NAME,param);
  if (mAccountID > 0) {
    accountManager.updateAccountName(mAccountID,param,new Handler(){
      @Override public void handleMessage(      Message msg){
        super.handleMessage(msg);
        setResult(RESULT_OK,intent);
        finish();
      }
    }
);
  }
 else {
    setResult(RESULT_OK,intent);
    finish();
  }
break;
case PROP_TYPE_ACCOUNT_MONEY:
if (TextUtils.isEmpty(param)) param="String_Node_Str";
double tempmoney=0.00;
try {
tempmoney=Double.parseDouble(param);
}
 catch (Exception e) {
}
final double money=tempmoney;
intent.putExtra(IntentConstant.EDIT_ACCOUNT_MONEY,money);
if (mAccountID > 0 && money - mMoney != 0) {
accountManager.updateAccountMoney(mAccountID,money - mMoney,new Handler(){
@Override public void handleMessage(Message msg){
super.handleMessage(msg);
Record record=new Record();
record.setIsDel(false);
record.setRemark(money - mMoney > 0 ? "String_Node_Str" : "String_Node_Str");
record.setRecordId(System.currentTimeMillis());
record.setAccountID(mAccountID);
record.setRecordType(Constant.RecordType.CHANGE.getId());
record.setRecordTypeID(Constant.CHANGE_TYPE);
record.setRecordMoney(MoneyUtil.getFormatNum(money - mMoney));
record.setRecordDate(new Date(System.currentTimeMillis()));
recordManager.createNewRecord(record,null);
setResult(RESULT_OK,intent);
finish();
}
}
);
}
 else {
setResult(RESULT_OK,intent);
finish();
}
break;
case PROP_TYPE_ACCOUNT_REMARK:
intent.putExtra(IntentConstant.EDIT_ACCOUNT_REMARK,param);
if (mAccountID > 0) {
accountManager.updateAccountRemark(mAccountID,param,new Handler(){
@Override public void handleMessage(Message msg){
super.handleMessage(msg);
setResult(RESULT_OK,intent);
finish();
}
}
);
}
 else {
setResult(RESULT_OK,intent);
finish();
}
break;
default :
break;
}
}