Program: 8992
Project: 8992
Buggy source:
/** 
 * Serializes the changes in the   {@link UpdateOp} into a JSON array; eachentry is another JSON array holding operation, key, revision, and value.
 */
public String asString(UpdateOp update){
  StringBuilder sb=new StringBuilder("String_Node_Str");
  boolean needComma=false;
  for (  Map.Entry<Key,Operation> change : update.getChanges().entrySet()) {
    Operation op=change.getValue();
    Key key=change.getKey();
    if (columnProperties.contains(key.getName()) && null == key.getRevision())     continue;
    if (op.type == UpdateOp.Operation.Type.CONTAINS_MAP_ENTRY)     continue;
    if (needComma) {
      sb.append("String_Node_Str");
    }
    sb.append("String_Node_Str");
    if (op.type == UpdateOp.Operation.Type.INCREMENT) {
      sb.append("String_Node_Str");
    }
 else     if (op.type == UpdateOp.Operation.Type.SET || op.type == UpdateOp.Operation.Type.SET_MAP_ENTRY) {
      sb.append("String_Node_Str");
    }
 else     if (op.type == UpdateOp.Operation.Type.MAX) {
      sb.append("String_Node_Str");
    }
 else     if (op.type == UpdateOp.Operation.Type.REMOVE_MAP_ENTRY) {
      sb.append("String_Node_Str");
    }
 else {
      throw new DocumentStoreException("String_Node_Str" + update.toString() + "String_Node_Str");
    }
    appendString(sb,key.getName());
    sb.append("String_Node_Str");
    if (key.getRevision() != null) {
      appendString(sb,key.getRevision().toString());
      sb.append("String_Node_Str");
    }
    appendValue(sb,op.value);
    sb.append("String_Node_Str");
    needComma=true;
  }
  return sb.append("String_Node_Str").toString();
}

Fixed version (ground truth):
/** 
 * Serializes the changes in the   {@link UpdateOp} into a JSON array; eachentry is another JSON array holding operation, key, revision, and value.
 */
public String asString(UpdateOp update){
  StringBuilder sb=new StringBuilder("String_Node_Str");
  boolean needComma=false;
  for (  Map.Entry<Key,Operation> change : update.getChanges().entrySet()) {
    Operation op=change.getValue();
    Key key=change.getKey();
    if (columnProperties.contains(key.getName()) && null == key.getRevision())     continue;
    if (op.type == UpdateOp.Operation.Type.CONTAINS_MAP_ENTRY)     continue;
    if (needComma) {
      sb.append("String_Node_Str");
    }
    sb.append("String_Node_Str");
    if (op.type == UpdateOp.Operation.Type.INCREMENT) {
      sb.append("String_Node_Str");
    }
 else     if (op.type == UpdateOp.Operation.Type.SET || op.type == UpdateOp.Operation.Type.SET_MAP_ENTRY) {
      sb.append("String_Node_Str");
    }
 else     if (op.type == UpdateOp.Operation.Type.MAX) {
      sb.append("String_Node_Str");
    }
 else     if (op.type == UpdateOp.Operation.Type.REMOVE_MAP_ENTRY) {
      sb.append("String_Node_Str");
    }
 else {
      throw new DocumentStoreException("String_Node_Str" + update.toString() + "String_Node_Str");
    }
    appendString(sb,key.getName());
    sb.append("String_Node_Str");
    Revision rev=key.getRevision();
    if (rev != null) {
      appendString(sb,rev.toString());
      sb.append("String_Node_Str");
    }
    appendValue(sb,op.value);
    sb.append("String_Node_Str");
    needComma=true;
  }
  return sb.append("String_Node_Str").toString();
}