Program: 39409
Project: 39409
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();
      }
    }
);
  }
break;
case PROP_TYPE_ACCOUNT_MONEY:
final double money=Double.parseDouble(param);
if (mAccountID > 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(27L);
  BigDecimal b=new BigDecimal(money - mMoney);
  record.setRecordMoney(b.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue());
  record.setRecordDate(new Date(System.currentTimeMillis()));
  recordManager.createNewRecord(record,null);
  setResult(RESULT_OK,intent);
  finish();
}
}
);
}
intent.putExtra(IntentConstant.EDIT_ACCOUNT_MONEY,money);
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();
}
}
);
}
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:
final double money=Double.parseDouble(param);
intent.putExtra(IntentConstant.EDIT_ACCOUNT_MONEY,money);
if (mAccountID > 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(27L);
BigDecimal b=new BigDecimal(money - mMoney);
record.setRecordMoney(b.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue());
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;
}
}