Program: 73957
Project: 73957
Buggy source:
/** 
 * Return a MoML request string that create or update the _highlightColor attribute of the given property-able object, according to the given property value. If the given property is null, this would issue delete request to remove the _highlightColor attribute, if there exists any.
 * @param propertyable The given property-able object.
 * @param property The given property.
 */
private String _getMoMLHighlightString(NamedObj propertyable,Property property){
  String request;
  String propertyString;
  if (property != null) {
    propertyString=property.toString();
  }
 else   if (getContainer() instanceof PropertyTokenSolver) {
    propertyString="String_Node_Str";
  }
 else {
    propertyString="String_Node_Str";
  }
  if (property != null && property.getColor().length() > 0) {
    request="String_Node_Str" + "String_Node_Str" + property.getColor() + "String_Node_Str";
    request=_completeHierarchyInMoML(propertyable,request);
    return request;
  }
  for (  ColorAttribute colorAttribute : (List<ColorAttribute>)attributeList(ColorAttribute.class)) {
    String colorAttrName=colorAttribute.getName();
    if (colorAttrName.endsWith("String_Node_Str")) {
      String propertyAttrName=colorAttrName.substring(0,colorAttrName.length() - 14);
      Attribute attribute=getAttribute(propertyAttrName);
      if (attribute != null && attribute instanceof StringAttribute) {
        String propertyToHighlight=((StringAttribute)attribute).getExpression();
        if (propertyToHighlight.equals(propertyString)) {
          ColorAttribute highlightAttribute=(ColorAttribute)propertyable.getAttribute("String_Node_Str");
          if (property == null && highlightAttribute != null) {
            request="String_Node_Str";
          }
 else {
            request="String_Node_Str" + "String_Node_Str" + colorAttribute.getExpression() + "String_Node_Str";
          }
          request=_completeHierarchyInMoML(propertyable,request);
          return request;
        }
      }
    }
  }
  return "String_Node_Str";
}

Fixed version (ground truth):
/** 
 * Return a MoML request string that create or update the _highlightColor attribute of the given property-able object, according to the given property value. If the given property is null, this would issue delete request to remove the _highlightColor attribute, if there exists any.
 * @param propertyable The given property-able object.
 * @param property The given property.
 */
private String _getMoMLHighlightString(NamedObj propertyable,Property property){
  String request;
  String propertyString;
  if (property != null) {
    propertyString=property.toString();
  }
 else {
    propertyString="String_Node_Str";
  }
  if (property != null && property.getColor().length() > 0) {
    request="String_Node_Str" + "String_Node_Str" + property.getColor() + "String_Node_Str";
    request=_completeHierarchyInMoML(propertyable,request);
    return request;
  }
  for (  ColorAttribute colorAttribute : (List<ColorAttribute>)attributeList(ColorAttribute.class)) {
    String colorAttrName=colorAttribute.getName();
    if (colorAttrName.endsWith("String_Node_Str")) {
      String propertyAttrName=colorAttrName.substring(0,colorAttrName.length() - 14);
      Attribute attribute=getAttribute(propertyAttrName);
      if (attribute != null && attribute instanceof StringAttribute) {
        String propertyToHighlight=((StringAttribute)attribute).getExpression();
        if (propertyToHighlight.equals(propertyString)) {
          ColorAttribute highlightAttribute=(ColorAttribute)propertyable.getAttribute("String_Node_Str");
          if (property == null && highlightAttribute != null) {
            request="String_Node_Str";
          }
 else {
            request="String_Node_Str" + "String_Node_Str" + colorAttribute.getExpression() + "String_Node_Str";
          }
          request=_completeHierarchyInMoML(propertyable,request);
          return request;
        }
      }
    }
  }
  return "String_Node_Str";
}