Program: 11739
Project: 11739
Buggy source:
public Map<GenPackage,Map<GenClass,List<GenClass.ChildCreationData>>> getExtendedChildCreationData(){
  GenModel genModel=getGenModel();
  Map<GenPackage,Map<GenClass,List<GenClass.ChildCreationData>>> result=new LinkedHashMap<GenPackage,Map<GenClass,List<GenClass.ChildCreationData>>>();
  List<GenPackage> allUsedGenPackagesWithClassifiers=getGenModel().getAllUsedGenPackagesWithClassifiers();
  for (  GenPackage genPackage : allUsedGenPackagesWithClassifiers) {
    for (    GenClass genClass : genPackage.getGenClasses()) {
      List<GenClass.ChildCreationData> allChildCreationData=genClass.getChildCreationData(genModel);
      for (      GenClass.ChildCreationData childCreationData : allChildCreationData) {
        if (childCreationData.delegatedFeature != null && childCreationData.delegatedFeature.getGenPackage() == this || childCreationData.createClassifier.getGenPackage() == this && (childCreationData.delegatedFeature == null || allUsedGenPackagesWithClassifiers.contains(childCreationData.delegatedFeature.getGenPackage()))) {
          GenClass featureClass=childCreationData.createFeature.getGenClass();
          GenPackage featureGenPackage=featureClass.getGenPackage();
          Map<GenClass,List<GenClass.ChildCreationData>> map=result.get(featureGenPackage);
          if (map == null) {
            result.put(featureGenPackage,map=new LinkedHashMap<GenClass,List<GenClass.ChildCreationData>>());
          }
          List<GenClass.ChildCreationData> data=map.get(featureClass);
          if (data == null) {
            map.put(featureClass,data=new UniqueEList<GenClass.ChildCreationData>());
          }
          data.add(childCreationData);
        }
      }
    }
  }
  return result;
}

Fixed version (ground truth):
public Map<GenPackage,Map<GenClass,List<GenClass.ChildCreationData>>> getExtendedChildCreationData(){
  GenModel genModel=getGenModel();
  Map<GenPackage,Map<GenClass,List<GenClass.ChildCreationData>>> result=new LinkedHashMap<GenPackage,Map<GenClass,List<GenClass.ChildCreationData>>>();
  List<GenPackage> allUsedGenPackagesWithClassifiers=getGenModel().getAllUsedGenPackagesWithClassifiers();
  for (  GenPackage genPackage : allUsedGenPackagesWithClassifiers) {
    for (    GenClass genClass : genPackage.getGenClasses()) {
      List<GenClass.ChildCreationData> allChildCreationData=genClass.getChildCreationData(genModel);
      for (      GenClass.ChildCreationData childCreationData : allChildCreationData) {
        if (childCreationData.delegatedFeature != null && childCreationData.delegatedFeature.getGenPackage() == this || childCreationData.createClassifier.getGenPackage() == this && (childCreationData.delegatedFeature == null || allUsedGenPackagesWithClassifiers.contains(childCreationData.delegatedFeature.getGenPackage()))) {
          GenClass featureClass=childCreationData.createFeature.getGenClass();
          GenPackage featureGenPackage=featureClass.getGenPackage();
          if (genPackage != featureGenPackage) {
            GenClass baseGenClass=genClass.getBaseGenClass();
            if (baseGenClass != null && !baseGenClass.getAllGenFeatures().contains(childCreationData.createFeature)) {
              Map<GenClass,List<GenClass.ChildCreationData>> map=result.get(genPackage);
              if (map == null) {
                result.put(genPackage,map=new LinkedHashMap<GenClass,List<GenClass.ChildCreationData>>());
              }
              List<GenClass.ChildCreationData> data=map.get(featureClass);
              if (data == null) {
                map.put(featureClass,data=new UniqueEList<GenClass.ChildCreationData>());
              }
              data.add(childCreationData);
            }
          }
          Map<GenClass,List<GenClass.ChildCreationData>> map=result.get(featureGenPackage);
          if (map == null) {
            result.put(featureGenPackage,map=new LinkedHashMap<GenClass,List<GenClass.ChildCreationData>>());
          }
          List<GenClass.ChildCreationData> data=map.get(featureClass);
          if (data == null) {
            map.put(featureClass,data=new UniqueEList<GenClass.ChildCreationData>());
          }
          data.add(childCreationData);
        }
      }
    }
  }
  return result;
}