Program: 96015
Project: 96015
Buggy source:
/** 
 * This method is called if the Action of a CAP is not compatible with the current XML-Config-File.<br> The existent TDManager of the CAP is filled with the TestData
 * @param owner The CAP.
 * @param xmlCap The abstraction of the XML CAP (see Apache XML Beans)
 * @return the filled TDManager of the given owner
 */
private ITDManager fillTDManager(IParamNodePO owner,Cap xmlCap){
  final ITDManager tdman=owner.getDataManager();
  List<ParamDescription> parDescList=xmlCap.getParameterDescriptionList();
  final TestData testData=xmlCap.getTestdata();
  int tdRow=0;
  for (  TestDataRow rowXml : testData.getRowList()) {
    if (rowXml.getDataList().isEmpty()) {
      continue;
    }
    List<ITestDataPO> tdList=null;
    try {
      tdList=tdman.getDataSet(tdRow).getList();
    }
 catch (    IndexOutOfBoundsException ioobe) {
      final StringBuilder msgSb=new StringBuilder();
      msgSb.append(Messages.Component);
      msgSb.append(StringConstants.COLON + StringConstants.SPACE);
      msgSb.append(xmlCap.getComponentType());
      msgSb.append(StringConstants.NEWLINE + Messages.Action);
      msgSb.append(StringConstants.COLON + StringConstants.SPACE);
      msgSb.append(CompSystemI18n.getString(xmlCap.getActionName()));
      msgSb.append(StringConstants.NEWLINE + Messages.Parameter);
      msgSb.append(StringConstants.COLON + StringConstants.SPACE);
      msgSb.append(CompSystemI18n.getString(parDescList.get(tdRow).getName()));
      final String msg=msgSb.toString();
      log.error(msg,ioobe);
      continue;
    }
    int tdCell=0;
    for (    TestDataCell cellXml : rowXml.getDataList()) {
      String uniqueId=parDescList.get(tdCell).getUniqueId();
      final int ownerIndex=owner.getDataManager().findColumnForParam(uniqueId);
      if (ownerIndex > -1) {
        tdList.set(ownerIndex,PoMaker.createTestDataPO(readData(cellXml,owner)));
      }
      tdCell++;
    }
    tdman.clear();
    tdman.insertDataSet(PoMaker.createListWrapperPO(tdList),tdRow);
    tdRow++;
  }
  return tdman;
}

Fixed version (ground truth):
/** 
 * This method is called if the Action of a CAP is not compatible with the current XML-Config-File.<br> The existent TDManager of the CAP is filled with the TestData
 * @param owner The CAP.
 * @param xmlCap The abstraction of the XML CAP (see Apache XML Beans)
 * @return the filled TDManager of the given owner
 */
private ITDManager fillTDManager(IParamNodePO owner,Cap xmlCap){
  final ITDManager tdman=owner.getDataManager();
  List<ParamDescription> parDescList=xmlCap.getParameterDescriptionList();
  final TestData testData=xmlCap.getTestdata();
  int tdRow=0;
  for (  TestDataRow rowXml : testData.getRowList()) {
    if (rowXml.getDataList().isEmpty()) {
      continue;
    }
    List<ITestDataPO> tdList=null;
    try {
      tdList=tdman.getDataSet(tdRow).getList();
    }
 catch (    IndexOutOfBoundsException ioobe) {
      final StringBuilder msgSb=new StringBuilder();
      msgSb.append(Messages.Component);
      msgSb.append(StringConstants.COLON + StringConstants.SPACE);
      msgSb.append(xmlCap.getComponentType());
      msgSb.append(StringConstants.NEWLINE + Messages.Action);
      msgSb.append(StringConstants.COLON + StringConstants.SPACE);
      msgSb.append(CompSystemI18n.getString(xmlCap.getActionName(),true));
      msgSb.append(StringConstants.NEWLINE + Messages.Parameter);
      msgSb.append(StringConstants.COLON + StringConstants.SPACE);
      msgSb.append(CompSystemI18n.getString(parDescList.get(tdRow).getName(),true));
      final String msg=msgSb.toString();
      log.error(msg,ioobe);
      continue;
    }
    int tdCell=0;
    for (    TestDataCell cellXml : rowXml.getDataList()) {
      String uniqueId=parDescList.get(tdCell).getUniqueId();
      final int ownerIndex=owner.getDataManager().findColumnForParam(uniqueId);
      if (ownerIndex > -1) {
        tdList.set(ownerIndex,PoMaker.createTestDataPO(readData(cellXml,owner)));
      }
      tdCell++;
    }
    tdman.clear();
    tdman.insertDataSet(PoMaker.createListWrapperPO(tdList),tdRow);
    tdRow++;
  }
  return tdman;
}