Program: 17902
Project: 17902
Buggy source:
private <T>void createInlinedEntities(final T jpaEntity,final EdmEntitySet entitySet,final ODataEntry entryValues,String jpaEntityName) throws ODataException {
  if (jpaEntity == null)   return;
  Map<String,Object> relatedPropertyValueMap=new HashMap<String,Object>();
  Map<String,Class<?>> relatedClassMap=new HashMap<String,Class<?>>();
  final EdmEntityType entityType=entitySet.getEntityType();
  for (  final String navigationPropertyName : entityType.getNavigationPropertyNames()) {
    final EdmNavigationProperty navigationProperty=(EdmNavigationProperty)entityType.getProperty(navigationPropertyName);
    List<ODataEntry> relatedValueList=null;
    if (entryValues.getProperties().get(navigationPropertyName) != null) {
      relatedValueList=((com.sap.core.odata.core.ep.feed.ODataFeedImpl)entryValues.getProperties().get(navigationPropertyName)).getEntries();
    }
    if (relatedValueList != null) {
      final EdmEntitySet relatedEntitySet=entitySet.getRelatedEntitySet(navigationProperty);
      for (      final ODataEntry relatedValues : relatedValueList) {
        String entityName=null;
        EdmEntityType relatedEntityType=relatedEntitySet.getEntityType();
        try {
          if (relatedEntityType.getMapping() != null && relatedEntityType.getMapping().getInternalName() != null) {
            entityName=relatedEntityType.getMapping().getInternalName();
          }
 else {
            entityName=relatedEntityType.getName();
          }
        }
 catch (        EdmException e1) {
          throw ODataJPARuntimeException.throwException(ODataJPARuntimeException.GENERAL.addContent(e1.getMessage()),e1);
        }
        Object relatedData=null;
        Set<EntityType<?>> entityTypeSet=this.metamodel.getEntities();
        String currentEntityName=null;
        for (        EntityType<?> entityTypeTemp : entityTypeSet) {
          if (entityTypeTemp.getJavaType().getName().endsWith("String_Node_Str" + entityName)) {
            currentEntityName=entityTypeTemp.getName();
            try {
              relatedClassMap.put(navigationProperty.getMapping().getInternalName(),entityTypeTemp.getJavaType());
              relatedData=entityTypeTemp.getJavaType().newInstance();
              break;
            }
 catch (            InstantiationException e) {
              throw ODataJPARuntimeException.throwException(ODataJPARuntimeException.GENERAL.addContent(e.getMessage()),e);
            }
catch (            IllegalAccessException e) {
              throw ODataJPARuntimeException.throwException(ODataJPARuntimeException.GENERAL.addContent(e.getMessage()),e);
            }
          }
        }
        if (relatedValues != null && relatedEntitySet != null)         parse2JPAEntityValueMap(relatedData,relatedEntitySet.getEntityType(),relatedValues.getProperties(),currentEntityName);
 else         continue;
        relatedPropertyValueMap.put(navigationProperty.getMapping().getInternalName(),relatedData);
        createInlinedEntities(relatedData,relatedEntitySet,relatedValues,currentEntityName);
      }
    }
  }
  setNavigationProperties(jpaEntity,entitySet,relatedPropertyValueMap,jpaEntityName,relatedClassMap);
}

Fixed version (ground truth):
private <T>void createInlinedEntities(final T jpaEntity,final EdmEntitySet entitySet,final ODataEntry entryValues,String jpaEntityName) throws ODataException {
  if (jpaEntity == null)   return;
  Map<String,Object> relatedPropertyValueMap=new HashMap<String,Object>();
  Map<String,Class<?>> relatedClassMap=new HashMap<String,Class<?>>();
  final EdmEntityType entityType=entitySet.getEntityType();
  for (  final String navigationPropertyName : entityType.getNavigationPropertyNames()) {
    final EdmNavigationProperty navigationProperty=(EdmNavigationProperty)entityType.getProperty(navigationPropertyName);
    List<ODataEntry> relatedValueList=null;
    if (entryValues.getProperties().get(navigationPropertyName) != null) {
      relatedValueList=((com.sap.core.odata.core.ep.feed.ODataFeedImpl)entryValues.getProperties().get(navigationPropertyName)).getEntries();
    }
    List<Object> relatedDataList=null;
    if (relatedValueList != null) {
      relatedDataList=new ArrayList<Object>();
      final EdmEntitySet relatedEntitySet=entitySet.getRelatedEntitySet(navigationProperty);
      for (      final ODataEntry relatedValues : relatedValueList) {
        String entityName=null;
        EdmEntityType relatedEntityType=relatedEntitySet.getEntityType();
        try {
          if (relatedEntityType.getMapping() != null && relatedEntityType.getMapping().getInternalName() != null) {
            entityName=relatedEntityType.getMapping().getInternalName();
          }
 else {
            entityName=relatedEntityType.getName();
          }
        }
 catch (        EdmException e1) {
          throw ODataJPARuntimeException.throwException(ODataJPARuntimeException.GENERAL.addContent(e1.getMessage()),e1);
        }
        Object relatedData=null;
        Set<EntityType<?>> entityTypeSet=this.metamodel.getEntities();
        String currentEntityName=null;
        for (        EntityType<?> entityTypeTemp : entityTypeSet) {
          if (entityTypeTemp.getJavaType().getName().endsWith("String_Node_Str" + entityName)) {
            currentEntityName=entityTypeTemp.getName();
            try {
              relatedClassMap.put(navigationProperty.getMapping().getInternalName(),entityTypeTemp.getJavaType());
              relatedData=entityTypeTemp.getJavaType().newInstance();
              break;
            }
 catch (            InstantiationException e) {
              throw ODataJPARuntimeException.throwException(ODataJPARuntimeException.GENERAL.addContent(e.getMessage()),e);
            }
catch (            IllegalAccessException e) {
              throw ODataJPARuntimeException.throwException(ODataJPARuntimeException.GENERAL.addContent(e.getMessage()),e);
            }
          }
        }
        if (relatedValues != null && relatedEntitySet != null) {
          relatedDataList.add(relatedData);
          parse2JPAEntityValueMap(relatedData,relatedEntitySet.getEntityType(),relatedValues.getProperties(),currentEntityName);
        }
 else         continue;
        createInlinedEntities(relatedData,relatedEntitySet,relatedValues,currentEntityName);
      }
    }
    relatedPropertyValueMap.put(navigationProperty.getMapping().getInternalName(),relatedDataList);
  }
  setNavigationProperties(jpaEntity,entitySet,relatedPropertyValueMap,jpaEntityName,relatedClassMap);
}