Program: 53240
Project: 53240
Buggy source:
public void migrate(Module jcrModule,AssetItem jcrAssetItem){
  if (!AssetFormats.DRL_MODEL.equals(jcrAssetItem.getFormat())) {
    throw new IllegalArgumentException("String_Node_Str" + jcrAssetItem.getName() + "String_Node_Str"+ jcrAssetItem.getFormat()+ "String_Node_Str");
  }
  Path path=migrationPathManager.generatePathForAsset(jcrModule,jcrAssetItem);
  Project project=projectService.resolveProject(path);
  initBasePropertyTypes();
  initAnnotationDefinitions();
  if (project == null) {
    Path projectRootPath=migrationPathManager.generatePathForModule(jcrModule);
    project=new Project(projectRootPath,projectRootPath,projectRootPath,projectRootPath,"String_Node_Str");
  }
  try {
    Asset jcrAsset=jcrRepositoryAssetService.loadRuleAsset(jcrAssetItem.getUUID());
    FactModels factModels=((FactModels)jcrAsset.getContent());
    DataModelTO dataModelTO=new DataModelTO();
    String packageName=jcrModule.getName();
    for (    FactMetaModel factMetaModel : factModels.models) {
      DataObjectTO dataObjectTO=createDataObject(packageName,factMetaModel.getName(),factMetaModel.getSuperType());
      List<AnnotationMetaModel> annotationMetaModel=factMetaModel.getAnnotations();
      addAnnotations(dataObjectTO,annotationMetaModel);
      List<FieldMetaModel> fields=factMetaModel.getFields();
      for (      FieldMetaModel fieldMetaModel : fields) {
        String filedName=fieldMetaModel.name;
        String fildType=fieldMetaModel.type;
        boolean isMultiple=false;
        boolean isBaseType=isBaseType(fildType);
        ObjectPropertyTO property=new ObjectPropertyTO(filedName,fildType,isMultiple,isBaseType);
        dataObjectTO.getProperties().add(property);
      }
      dataModelTO.getDataObjects().add(dataObjectTO);
    }
    modelerService.saveModel(dataModelTO,project);
  }
 catch (  SerializationException e) {
    e.printStackTrace();
  }
}

Fixed version (ground truth):
public void migrate(Module jcrModule,AssetItem jcrAssetItem){
  if (!AssetFormats.DRL_MODEL.equals(jcrAssetItem.getFormat())) {
    throw new IllegalArgumentException("String_Node_Str" + jcrAssetItem.getName() + "String_Node_Str"+ jcrAssetItem.getFormat()+ "String_Node_Str");
  }
  Path path=migrationPathManager.generatePathForAsset(jcrModule,jcrAssetItem);
  Project project=projectService.resolveProject(path);
  initBasePropertyTypes();
  initAnnotationDefinitions();
  if (project == null) {
    Path projectRootPath=migrationPathManager.generatePathForModule(jcrModule);
    project=new Project(projectRootPath,projectRootPath,projectRootPath,projectRootPath,"String_Node_Str");
  }
  try {
    Asset jcrAsset=jcrRepositoryAssetService.loadRuleAsset(jcrAssetItem.getUUID());
    FactModels factModels=((FactModels)jcrAsset.getContent());
    DataModelTO dataModelTO=new DataModelTO();
    String packageName=getPackageName(jcrModule);
    for (    FactMetaModel factMetaModel : factModels.models) {
      DataObjectTO dataObjectTO=createDataObject(packageName,factMetaModel.getName(),factMetaModel.getSuperType());
      List<AnnotationMetaModel> annotationMetaModel=factMetaModel.getAnnotations();
      addAnnotations(dataObjectTO,annotationMetaModel);
      List<FieldMetaModel> fields=factMetaModel.getFields();
      for (      FieldMetaModel fieldMetaModel : fields) {
        String filedName=fieldMetaModel.name;
        String fildType=fieldMetaModel.type;
        boolean isMultiple=false;
        boolean isBaseType=isBaseType(fildType);
        ObjectPropertyTO property=new ObjectPropertyTO(filedName,fildType,isMultiple,isBaseType);
        dataObjectTO.getProperties().add(property);
      }
      dataModelTO.getDataObjects().add(dataObjectTO);
    }
    modelerService.saveModel(dataModelTO,project);
  }
 catch (  SerializationException e) {
    e.printStackTrace();
  }
}