Program: 17405
Project: 17405
Buggy source:
/** 
 * @see org.cfeclipse.cfml.parser.docitems.DocItem#IsSane()
 */
public boolean IsSane(){
  HashMap suggestedAttributes=new HashMap();
  Set suggAttribSet=itemAttributes.keySet();
  for (Iterator iter=suggAttribSet.iterator(); iter.hasNext(); ) {
    String attributeName=(String)iter.next();
    AttributeItem attributeValue=(AttributeItem)itemAttributes.get(attributeName);
    suggestedAttributes.put(attributeName,attributeValue.getValue());
  }
  Set attributes=syntax.getElementAttributes(this.itemName);
  Object[] params=attributes.toArray();
  for (int i=0; i < params.length; i++) {
    Parameter currParam=(Parameter)params[i];
    if (currParam.isRequired() && !itemAttributes.containsKey(currParam.getName())) {
      this.parseMessages.addMessage(new ParseError(lineNumber,startPosition,endPosition,itemData,"String_Node_Str" + currParam.getName() + "String_Node_Str"+ itemName+ "String_Node_Str"));
    }
    if (!currParam.getTriggers().isEmpty() && currParam.isRequired(suggestedAttributes) == 3 && !itemAttributes.containsKey(currParam.getName())) {
      this.parseMessages.addMessage(new ParseError(lineNumber,startPosition,endPosition,itemData,"String_Node_Str" + currParam.getName() + "String_Node_Str"+ itemName+ "String_Node_Str"));
    }
 else     if (!currParam.getTriggers().isEmpty() && currParam.isTriggered(suggestedAttributes) == 0 && itemAttributes.containsKey(currParam.getName())) {
      this.parseMessages.addMessage(new ParseError(lineNumber,startPosition,endPosition,itemData,"String_Node_Str" + currParam.getName() + "String_Node_Str"+ itemName+ "String_Node_Str"));
    }
  }
  return super.IsSane();
}

Fixed version (ground truth):
/** 
 * @see org.cfeclipse.cfml.parser.docitems.DocItem#IsSane()
 */
public boolean IsSane(){
  HashMap suggestedAttributes=new HashMap();
  Set suggAttribSet=itemAttributes.keySet();
  for (Iterator iter=suggAttribSet.iterator(); iter.hasNext(); ) {
    String attributeName=(String)iter.next();
    AttributeItem attributeValue=(AttributeItem)itemAttributes.get(attributeName);
    suggestedAttributes.put(attributeName,attributeValue.getValue());
  }
  Set attributes=syntax.getElementAttributes(this.itemName);
  if (attributes == null) {
    return super.IsSane();
  }
  Object[] params=attributes.toArray();
  for (int i=0; i < params.length; i++) {
    Parameter currParam=(Parameter)params[i];
    if (currParam.isRequired() && !itemAttributes.containsKey(currParam.getName())) {
      this.parseMessages.addMessage(new ParseError(lineNumber,startPosition,endPosition,itemData,"String_Node_Str" + currParam.getName() + "String_Node_Str"+ itemName+ "String_Node_Str"));
    }
    if (!currParam.getTriggers().isEmpty() && currParam.isRequired(suggestedAttributes) == 3 && !itemAttributes.containsKey(currParam.getName())) {
      this.parseMessages.addMessage(new ParseError(lineNumber,startPosition,endPosition,itemData,"String_Node_Str" + currParam.getName() + "String_Node_Str"+ itemName+ "String_Node_Str"));
    }
 else     if (!currParam.getTriggers().isEmpty() && currParam.isTriggered(suggestedAttributes) == 0 && itemAttributes.containsKey(currParam.getName())) {
      this.parseMessages.addMessage(new ParseError(lineNumber,startPosition,endPosition,itemData,"String_Node_Str" + currParam.getName() + "String_Node_Str"+ itemName+ "String_Node_Str"));
    }
  }
  return super.IsSane();
}