Program: 73942
Project: 73942
Buggy source:
/** 
 * Return the list of property-able Attributes.
 * @return The list of property-able Attributes.
 */
protected List<Attribute> _getPropertyableAttributes(){
  List<Attribute> result=new LinkedList<Attribute>();
  Iterator attributes=((Entity)getComponent()).attributeList().iterator();
  while (attributes.hasNext()) {
    Attribute attribute=(Attribute)attributes.next();
    if (attribute.getClass().equals(ptolemy.kernel.util.StringAttribute.class)) {
      if ((((StringAttribute)attribute).getName().equalsIgnoreCase("String_Node_Str")) || ((((StringAttribute)attribute).getContainer() instanceof Expression)) && ((StringAttribute)attribute).getName().equalsIgnoreCase("String_Node_Str")) {
        result.add(attribute);
      }
    }
 else     if (attribute instanceof Variable) {
      if (((Variable)attribute).getVisibility() == Settable.FULL) {
        if (attribute instanceof PortParameter) {
          result.add(attribute);
        }
 else         if ((attribute.getClass().equals(ptolemy.data.expr.Parameter.class)) || (attribute.getClass().equals(ptolemy.data.expr.StringParameter.class))) {
          if (((Parameter)attribute).getName().equals("String_Node_Str") || ((Parameter)attribute).getName().equals("String_Node_Str") || ((Parameter)attribute).getName().equals("String_Node_Str")|| ((Parameter)attribute).getName().equals("String_Node_Str")|| ((Parameter)attribute).getName().equals("String_Node_Str")|| ((Parameter)attribute).getName().equals("String_Node_Str")|| ((Parameter)attribute).getName().equals("String_Node_Str")|| ((Parameter)attribute).getName().equals("String_Node_Str")|| ((Parameter)attribute).getName().equals("String_Node_Str")) {
          }
 else {
            result.add(attribute);
          }
        }
      }
    }
  }
  return result;
}

Fixed version (ground truth):
/** 
 * Return the list of property-able Attributes. A property-able Attribute is a StringAttribute with the name "guardTransition", a StringAttribute in an Expression actor, a StringAttribute with the name "expression" or a Variable with full visibility.  However, Variables with certain names are excluded.
 * @see ptolemy.data.properties.Propertyable
 * @return The list of property-able Attributes.
 */
protected List<Attribute> _getPropertyableAttributes(){
  List<Attribute> result=new LinkedList<Attribute>();
  Iterator attributes=((Entity)getComponent()).attributeList().iterator();
  while (attributes.hasNext()) {
    Attribute attribute=(Attribute)attributes.next();
    if (attribute.getClass().equals(ptolemy.kernel.util.StringAttribute.class)) {
      if ((((StringAttribute)attribute).getName().equalsIgnoreCase("String_Node_Str")) || ((((StringAttribute)attribute).getContainer() instanceof Expression)) && ((StringAttribute)attribute).getName().equalsIgnoreCase("String_Node_Str")) {
        result.add(attribute);
      }
    }
 else     if (attribute instanceof Variable) {
      if (((Variable)attribute).getVisibility() == Settable.FULL) {
        if (attribute instanceof PortParameter) {
          result.add(attribute);
        }
 else         if ((attribute.getClass().equals(ptolemy.data.expr.Parameter.class)) || (attribute.getClass().equals(ptolemy.data.expr.StringParameter.class))) {
          if (((Parameter)attribute).getName().equals("String_Node_Str") || ((Parameter)attribute).getName().equals("String_Node_Str") || ((Parameter)attribute).getName().equals("String_Node_Str")|| ((Parameter)attribute).getName().equals("String_Node_Str")|| ((Parameter)attribute).getName().equals("String_Node_Str")|| ((Parameter)attribute).getName().equals("String_Node_Str")|| ((Parameter)attribute).getName().equals("String_Node_Str")|| ((Parameter)attribute).getName().equals("String_Node_Str")|| ((Parameter)attribute).getName().equals("String_Node_Str")) {
          }
 else {
            result.add(attribute);
          }
        }
      }
    }
  }
  return result;
}