Program: 54875
Project: 54875
Buggy source:
void serialize(XmlSerializer serializer,String elementNamespaceUri,String elementLocalName) throws IOException {
  boolean errorOnUnknown=this.errorOnUnknown;
  if (elementLocalName == null) {
    if (errorOnUnknown) {
      throw new IllegalArgumentException("String_Node_Str");
    }
    elementLocalName="String_Node_Str";
  }
  serializer.startTag(elementNamespaceUri,elementLocalName);
  List<String> attributeNames=this.attributeNames;
  List<Object> attributeValues=this.attributeValues;
  int num=attributeNames.size();
  for (int i=0; i < num; i++) {
    String attributeName=attributeNames.get(i);
    int colon=attributeName.indexOf(':');
    String attributeLocalName=attributeName.substring(colon + 1);
    String attributeNamespaceUri=colon == -1 ? null : getNamespaceUriForAlias(attributeName.substring(0,colon));
    serializer.attribute(attributeNamespaceUri,attributeLocalName,toSerializedValue(attributeValues.get(i)));
  }
  Object textValue=this.textValue;
  if (textValue != null) {
    serializer.text(toSerializedValue(textValue));
  }
  List<String> subElementNames=this.subElementNames;
  List<Object> subElementValues=this.subElementValues;
  num=subElementNames.size();
  for (int i=0; i < num; i++) {
    Object subElementValue=subElementValues.get(i);
    String subElementName=subElementNames.get(i);
    if (subElementValue instanceof List<?>) {
      for (      Object subElement : (List<?>)subElementValue) {
        new ElementSerializer(subElement,errorOnUnknown).serialize(serializer,subElementName);
      }
    }
 else {
      new ElementSerializer(subElementValue,errorOnUnknown).serialize(serializer,subElementName);
    }
  }
  serializer.endTag(elementNamespaceUri,elementLocalName);
}

Fixed version (ground truth):
void serialize(XmlSerializer serializer,String elementNamespaceUri,String elementLocalName) throws IOException {
  boolean errorOnUnknown=this.errorOnUnknown;
  if (elementLocalName == null) {
    if (errorOnUnknown) {
      throw new IllegalArgumentException("String_Node_Str");
    }
    elementLocalName="String_Node_Str";
  }
  serializer.startTag(elementNamespaceUri,elementLocalName);
  List<String> attributeNames=this.attributeNames;
  List<Object> attributeValues=this.attributeValues;
  int num=attributeNames.size();
  for (int i=0; i < num; i++) {
    String attributeName=attributeNames.get(i);
    int colon=attributeName.indexOf(':');
    String attributeLocalName=attributeName.substring(colon + 1);
    String attributeNamespaceUri=colon == -1 ? null : getNamespaceUriForAlias(attributeName.substring(0,colon));
    serializer.attribute(attributeNamespaceUri,attributeLocalName,toSerializedValue(attributeValues.get(i)));
  }
  Object textValue=this.textValue;
  if (textValue != null) {
    serializer.text(toSerializedValue(textValue));
  }
  List<String> subElementNames=this.subElementNames;
  List<Object> subElementValues=this.subElementValues;
  num=subElementNames.size();
  for (int i=0; i < num; i++) {
    Object subElementValue=subElementValues.get(i);
    String subElementName=subElementNames.get(i);
    if (subElementValue instanceof Collection<?>) {
      for (      Object subElement : (Collection<?>)subElementValue) {
        new ElementSerializer(subElement,errorOnUnknown).serialize(serializer,subElementName);
      }
    }
 else {
      new ElementSerializer(subElementValue,errorOnUnknown).serialize(serializer,subElementName);
    }
  }
  serializer.endTag(elementNamespaceUri,elementLocalName);
}