Program: 106448
Project: 106448
Buggy source:
private static void serializeResponseObjFieldsXML(StringBuilder sb,ResponseObject obj){
  boolean isAsync=false;
  if (obj instanceof AsyncJobResponse)   isAsync=true;
  Field[] fields=getFlattenFields(obj.getClass());
  for (  Field field : fields) {
    if ((field.getModifiers() & Modifier.TRANSIENT) != 0) {
      continue;
    }
    SerializedName serializedName=field.getAnnotation(SerializedName.class);
    if (serializedName == null) {
      continue;
    }
    field.setAccessible(true);
    Object fieldValue=null;
    try {
      fieldValue=field.get(obj);
    }
 catch (    IllegalArgumentException e) {
      throw new CloudRuntimeException("String_Node_Str",e);
    }
catch (    IllegalAccessException e) {
      throw new CloudRuntimeException("String_Node_Str",e);
    }
    if (fieldValue != null) {
      if (fieldValue instanceof ResponseObject) {
        ResponseObject subObj=(ResponseObject)fieldValue;
        if (isAsync) {
          sb.append("String_Node_Str");
        }
        serializeResponseObjXML(sb,subObj);
        if (isAsync) {
          sb.append("String_Node_Str");
        }
      }
 else       if (fieldValue instanceof List<?>) {
        List<?> subResponseList=(List<Object>)fieldValue;
        boolean usedUuidList=false;
        for (        Object value : subResponseList) {
          if (value instanceof ResponseObject) {
            ResponseObject subObj=(ResponseObject)value;
            if (serializedName != null) {
              subObj.setObjectName(serializedName.value());
            }
            serializeResponseObjXML(sb,subObj);
          }
 else           if (value instanceof IdentityProxy) {
            IdentityProxy idProxy=(IdentityProxy)value;
            String id=(idProxy.getValue() != null ? String.valueOf(idProxy.getValue()) : "String_Node_Str");
            if (!id.isEmpty()) {
              IdentityDao identityDao=new IdentityDaoImpl();
              id=identityDao.getIdentityUuid(idProxy.getTableName(),id);
            }
            if (id != null && !id.isEmpty()) {
              if (!usedUuidList) {
                sb.append("String_Node_Str").append(serializedName.value()).append("String_Node_Str");
                usedUuidList=true;
              }
              sb.append("String_Node_Str").append(id).append("String_Node_Str");
            }
            String idFieldName=idProxy.getidFieldName();
            if (idFieldName != null) {
              sb.append("String_Node_Str").append(idFieldName).append("String_Node_Str");
            }
          }
        }
        if (usedUuidList) {
          sb.append("String_Node_Str").append(serializedName.value()).append("String_Node_Str");
        }
      }
 else       if (fieldValue instanceof Date) {
        sb.append("String_Node_Str").append("String_Node_Str").append(BaseCmd.getDateString((Date)fieldValue)).append("String_Node_Str").append(serializedName.value()).append("String_Node_Str");
      }
 else       if (fieldValue instanceof IdentityProxy) {
        IdentityProxy idProxy=(IdentityProxy)fieldValue;
        String id=(idProxy.getValue() != null ? String.valueOf(idProxy.getValue()) : "String_Node_Str");
        if (!id.isEmpty()) {
          IdentityDao identityDao=new IdentityDaoImpl();
          if (idProxy.getTableName() != null) {
            id=identityDao.getIdentityUuid(idProxy.getTableName(),id);
          }
 else {
            s_logger.warn("String_Node_Str" + obj.getClass().getName());
          }
        }
        if (id != null && !id.isEmpty())         sb.append("String_Node_Str").append(serializedName.value()).append("String_Node_Str").append(id).append("String_Node_Str").append(serializedName.value()).append("String_Node_Str");
      }
 else {
        String resultString=escapeSpecialXmlChars(fieldValue.toString());
        if (!(obj instanceof ExceptionResponse)) {
          resultString=encodeParam(resultString);
        }
        sb.append("String_Node_Str").append(serializedName.value()).append("String_Node_Str").append(resultString).append("String_Node_Str").append(serializedName.value()).append("String_Node_Str");
      }
    }
  }
}

Fixed version (ground truth):
private static void serializeResponseObjFieldsXML(StringBuilder sb,ResponseObject obj){
  boolean isAsync=false;
  if (obj instanceof AsyncJobResponse)   isAsync=true;
  Field[] fields=getFlattenFields(obj.getClass());
  for (  Field field : fields) {
    if ((field.getModifiers() & Modifier.TRANSIENT) != 0) {
      continue;
    }
    SerializedName serializedName=field.getAnnotation(SerializedName.class);
    if (serializedName == null) {
      continue;
    }
    field.setAccessible(true);
    Object fieldValue=null;
    try {
      fieldValue=field.get(obj);
    }
 catch (    IllegalArgumentException e) {
      throw new CloudRuntimeException("String_Node_Str",e);
    }
catch (    IllegalAccessException e) {
      throw new CloudRuntimeException("String_Node_Str",e);
    }
    if (fieldValue != null) {
      if (fieldValue instanceof ResponseObject) {
        ResponseObject subObj=(ResponseObject)fieldValue;
        if (isAsync) {
          sb.append("String_Node_Str");
        }
        serializeResponseObjXML(sb,subObj);
        if (isAsync) {
          sb.append("String_Node_Str");
        }
      }
 else       if (fieldValue instanceof List<?>) {
        List<?> subResponseList=(List<Object>)fieldValue;
        boolean usedUuidList=false;
        for (        Object value : subResponseList) {
          if (value instanceof ResponseObject) {
            ResponseObject subObj=(ResponseObject)value;
            if (serializedName != null) {
              subObj.setObjectName(serializedName.value());
            }
            serializeResponseObjXML(sb,subObj);
          }
 else           if (value instanceof IdentityProxy) {
            IdentityProxy idProxy=(IdentityProxy)value;
            String id=(idProxy.getValue() != null ? String.valueOf(idProxy.getValue()) : "String_Node_Str");
            if (!id.isEmpty()) {
              IdentityDao identityDao=new IdentityDaoImpl();
              id=identityDao.getIdentityUuid(idProxy.getTableName(),id);
            }
            if (id != null && !id.isEmpty()) {
              if (!usedUuidList) {
                sb.append("String_Node_Str").append(serializedName.value()).append("String_Node_Str");
                usedUuidList=true;
              }
              sb.append("String_Node_Str").append(id).append("String_Node_Str");
            }
            String idFieldName=idProxy.getidFieldName();
            if (idFieldName != null) {
              sb.append("String_Node_Str").append(idFieldName).append("String_Node_Str");
            }
          }
        }
        if (usedUuidList) {
          sb.append("String_Node_Str").append(serializedName.value()).append("String_Node_Str");
        }
      }
 else       if (fieldValue instanceof Date) {
        sb.append("String_Node_Str").append(serializedName.value()).append("String_Node_Str").append(BaseCmd.getDateString((Date)fieldValue)).append("String_Node_Str").append(serializedName.value()).append("String_Node_Str");
      }
 else       if (fieldValue instanceof IdentityProxy) {
        IdentityProxy idProxy=(IdentityProxy)fieldValue;
        String id=(idProxy.getValue() != null ? String.valueOf(idProxy.getValue()) : "String_Node_Str");
        if (!id.isEmpty()) {
          IdentityDao identityDao=new IdentityDaoImpl();
          if (idProxy.getTableName() != null) {
            id=identityDao.getIdentityUuid(idProxy.getTableName(),id);
          }
 else {
            s_logger.warn("String_Node_Str" + obj.getClass().getName());
          }
        }
        if (id != null && !id.isEmpty())         sb.append("String_Node_Str").append(serializedName.value()).append("String_Node_Str").append(id).append("String_Node_Str").append(serializedName.value()).append("String_Node_Str");
      }
 else {
        String resultString=escapeSpecialXmlChars(fieldValue.toString());
        if (!(obj instanceof ExceptionResponse)) {
          resultString=encodeParam(resultString);
        }
        sb.append("String_Node_Str").append(serializedName.value()).append("String_Node_Str").append(resultString).append("String_Node_Str").append(serializedName.value()).append("String_Node_Str");
      }
    }
  }
}