Program: 160445
Project: 160445
Buggy source:
private void addTwoDimensionalArray(String entityName,String attribName){
  EClassifier finalType=null;
  if (entityName.equals("String_Node_Str") && attribName.equals("String_Node_Str")) {
    finalType=schemaPack.getEClassifier("String_Node_Str");
  }
 else   if (entityName.equals("String_Node_Str") && attribName.equals("String_Node_Str")) {
    finalType=schemaPack.getEClassifier("String_Node_Str");
  }
 else   if (entityName.equals("String_Node_Str") && attribName.equals("String_Node_Str")) {
    finalType=schemaPack.getEClassifier("String_Node_Str");
  }
 else   if (entityName.equals("String_Node_Str") && attribName.equals("String_Node_Str")) {
    finalType=EcorePackage.eINSTANCE.getEInt();
  }
 else   if (entityName.equals("String_Node_Str") && attribName.equals("String_Node_Str")) {
    finalType=EcorePackage.eINSTANCE.getEDouble();
  }
 else   if (entityName.equals("String_Node_Str") && attribName.equals("String_Node_Str")) {
    finalType=schemaPack.getEClassifier("String_Node_Str");
  }
 else   if (entityName.equals("String_Node_Str") && attribName.equals("String_Node_Str")) {
    finalType=schemaPack.getEClassifier("String_Node_Str");
  }
 else   if (entityName.equals("String_Node_Str") && attribName.equals("String_Node_Str")) {
    finalType=schemaPack.getEClassifier("String_Node_Str");
  }
 else   if (entityName.equals("String_Node_Str") && attribName.equals("String_Node_Str")) {
    finalType=EcorePackage.eINSTANCE.getEInt();
  }
 else   if (entityName.equals("String_Node_Str") && attribName.equals("String_Node_Str")) {
    finalType=EcorePackage.eINSTANCE.getEInt();
  }
 else {
    System.out.println("String_Node_Str" + entityName + "String_Node_Str"+ attribName);
  }
  EClass containerClass=(EClass)schemaPack.getEClassifier("String_Node_Str" + finalType.getName());
  if (containerClass == null) {
    containerClass=EcoreFactory.eINSTANCE.createEClass();
    containerClass.setName("String_Node_Str" + finalType.getName());
    if (finalType.getEPackage() == EcorePackage.eINSTANCE) {
      EAttribute finalAttribute=EcoreFactory.eINSTANCE.createEAttribute();
      finalAttribute.setName("String_Node_Str");
      finalAttribute.setEType(finalType);
      finalAttribute.setUpperBound(-1);
      containerClass.getEAttributes().add(finalAttribute);
    }
 else {
      EReference finalReference=EcoreFactory.eINSTANCE.createEReference();
      finalReference.setName("String_Node_Str");
      finalReference.setEType(finalType);
      finalReference.setUpperBound(-1);
      containerClass.getEReferences().add(finalReference);
    }
    schemaPack.getEClassifiers().add(containerClass);
  }
  EReference eReference=EcoreFactory.eINSTANCE.createEReference();
  eReference.getEAnnotations().add(createTwoDimensionalArrayAnnotation());
  eReference.setName(attribName);
  eReference.setUpperBound(-1);
  eReference.setEType(containerClass);
  EClass cls=(EClass)schemaPack.getEClassifier(entityName);
  cls.getEStructuralFeatures().add(eReference);
}

Fixed version (ground truth):
private void addTwoDimensionalArray(String entityName,String attribName){
  EClassifier finalType=null;
  if (entityName.equals("String_Node_Str") && attribName.equals("String_Node_Str")) {
    finalType=schemaPack.getEClassifier("String_Node_Str");
  }
 else   if (entityName.equals("String_Node_Str") && attribName.equals("String_Node_Str")) {
    finalType=schemaPack.getEClassifier("String_Node_Str");
  }
 else   if (entityName.equals("String_Node_Str") && attribName.equals("String_Node_Str")) {
    finalType=schemaPack.getEClassifier("String_Node_Str");
  }
 else   if (entityName.equals("String_Node_Str") && attribName.equals("String_Node_Str")) {
    finalType=EcorePackage.eINSTANCE.getEInt();
  }
 else   if (entityName.equals("String_Node_Str") && attribName.equals("String_Node_Str")) {
    finalType=EcorePackage.eINSTANCE.getEDouble();
  }
 else   if (entityName.equals("String_Node_Str") && attribName.equals("String_Node_Str")) {
    finalType=schemaPack.getEClassifier("String_Node_Str");
  }
 else   if (entityName.equals("String_Node_Str") && attribName.equals("String_Node_Str")) {
    finalType=schemaPack.getEClassifier("String_Node_Str");
  }
 else   if (entityName.equals("String_Node_Str") && attribName.equals("String_Node_Str")) {
    finalType=schemaPack.getEClassifier("String_Node_Str");
  }
 else   if (entityName.equals("String_Node_Str") && attribName.equals("String_Node_Str")) {
    finalType=EcorePackage.eINSTANCE.getEInt();
  }
 else   if (entityName.equals("String_Node_Str") && attribName.equals("String_Node_Str")) {
    finalType=EcorePackage.eINSTANCE.getEInt();
  }
 else {
    throw new RuntimeException("String_Node_Str" + entityName + "String_Node_Str"+ attribName);
  }
  EClass containerClass=(EClass)schemaPack.getEClassifier("String_Node_Str" + finalType.getName());
  if (containerClass == null) {
    containerClass=EcoreFactory.eINSTANCE.createEClass();
    containerClass.setName("String_Node_Str" + finalType.getName());
    if (finalType.getEPackage() == EcorePackage.eINSTANCE) {
      EAttribute finalAttribute=EcoreFactory.eINSTANCE.createEAttribute();
      finalAttribute.setName("String_Node_Str");
      finalAttribute.setEType(finalType);
      finalAttribute.setUpperBound(-1);
      containerClass.getEAttributes().add(finalAttribute);
    }
 else {
      EReference finalReference=EcoreFactory.eINSTANCE.createEReference();
      finalReference.setName("String_Node_Str");
      finalReference.setEType(finalType);
      finalReference.setUpperBound(-1);
      containerClass.getEReferences().add(finalReference);
    }
    schemaPack.getEClassifiers().add(containerClass);
  }
  EReference eReference=EcoreFactory.eINSTANCE.createEReference();
  eReference.getEAnnotations().add(createTwoDimensionalArrayAnnotation());
  eReference.setName(attribName);
  eReference.setUpperBound(-1);
  eReference.setEType(containerClass);
  EClass cls=(EClass)schemaPack.getEClassifier(entityName);
  cls.getEStructuralFeatures().add(eReference);
}