Program: 11729
Project: 11729
Buggy source:
protected EClassifier getEClassifier(final XClassifier xClassifier){
  final EClassifier eClassifier=xClassifier instanceof XClass ? getEClass((XClass)xClassifier) : xClassifier instanceof XEnum ? getEEnum((XEnum)xClassifier) : getEDataType((XDataType)xClassifier);
  handleAnnotations(xClassifier,eClassifier);
  eClassifier.setName(nonNullName(xClassifier.getName()));
  if (xClassifier.eIsSet(XcorePackage.Literals.XCLASSIFIER__INSTANCE_TYPE)) {
    if (eClassifier instanceof EClass) {
      eClassifier.setInstanceTypeName("String_Node_Str");
    }
    instanceTypeRunnables.add(new Runnable(){
      public void run(){
        JvmTypeReference instanceType=xClassifier.getInstanceType();
        if (instanceType != null) {
          String instanceTypeName=instanceType.getIdentifier();
          String normalizedInstanceTypeName=EcoreUtil.toJavaInstanceTypeName((EGenericType)EcoreValidator.EGenericTypeBuilder.INSTANCE.parseInstanceTypeName(instanceTypeName).getData().get(0));
          eClassifier.setInstanceTypeName(normalizedInstanceTypeName);
          if (classLoader != null && eClassifier instanceof EClassifierImpl) {
            try {
              Class<?> instanceClass=classLoader.loadClass(eClassifier.getInstanceClassName());
              ((EClassifierImpl)eClassifier).setInstanceClassGen(instanceClass);
            }
 catch (            Throwable throwable) {
            }
          }
        }
      }
    }
);
  }
  return eClassifier;
}

Fixed version (ground truth):
protected EClassifier getEClassifier(final XClassifier xClassifier){
  final EClassifier eClassifier=xClassifier instanceof XClass ? getEClass((XClass)xClassifier) : xClassifier instanceof XEnum ? getEEnum((XEnum)xClassifier) : getEDataType((XDataType)xClassifier);
  handleAnnotations(xClassifier,eClassifier);
  eClassifier.setName(nonNullName(xClassifier.getName()));
  if (xClassifier.eIsSet(XcorePackage.Literals.XCLASSIFIER__INSTANCE_TYPE)) {
    if (eClassifier instanceof EClass) {
      eClassifier.setInstanceTypeName("String_Node_Str");
    }
    List<INode> nodes=NodeModelUtils.findNodesForFeature(xClassifier,XcorePackage.Literals.XCLASSIFIER__INSTANCE_TYPE);
    if (!nodes.isEmpty()) {
      StringBuilder instanceTypeLiteral=new StringBuilder();
      for (      INode node : nodes) {
        instanceTypeLiteral.append(NodeModelUtils.getTokenText(node));
      }
      eClassifier.setInstanceTypeName(instanceTypeLiteral.toString());
    }
    instanceTypeRunnables.add(new Runnable(){
      public void run(){
        JvmTypeReference instanceType=xClassifier.getInstanceType();
        if (instanceType != null) {
          String instanceTypeName=instanceType.getIdentifier();
          String normalizedInstanceTypeName=EcoreUtil.toJavaInstanceTypeName((EGenericType)EcoreValidator.EGenericTypeBuilder.INSTANCE.parseInstanceTypeName(instanceTypeName).getData().get(0));
          eClassifier.setInstanceTypeName(normalizedInstanceTypeName);
          if (classLoader != null && eClassifier instanceof EClassifierImpl) {
            try {
              Class<?> instanceClass=classLoader.loadClass(eClassifier.getInstanceClassName());
              ((EClassifierImpl)eClassifier).setInstanceClassGen(instanceClass);
            }
 catch (            Throwable throwable) {
            }
          }
        }
      }
    }
);
  }
  return eClassifier;
}