Program: 44638
Project: 44638
Buggy source:
protected List<CmsPropertyInfo> loadComplexCmsPropertyInfos(CmsPropertyDefinition complexPropertyDefinition){
  List<CmsPropertyInfo> complexCmsPropertyInfos=new ArrayList<CmsPropertyInfo>();
  ComplexCmsProperty<?,?> parentComplexCmsProperty=(ComplexCmsProperty<?,?>)contentObjectMarshalContext.getFirstComplexCmsPropertyInfo().getCmsProperty();
  if (parentComplexCmsProperty == null) {
    throw new CmsException("String_Node_Str" + complexPropertyDefinition.getFullPath());
  }
  List<CmsProperty<?,?>> complexCmsProperties=parentComplexCmsProperty.getChildProperties().get(complexPropertyDefinition.getName());
  if (CollectionUtils.isEmpty(complexCmsProperties)) {
    if (parentComplexCmsProperty.hasValueForChildProperty(complexPropertyDefinition.getName())) {
      if (complexPropertyDefinition.isMultiple()) {
        complexCmsProperties=parentComplexCmsProperty.getChildPropertyList(complexPropertyDefinition.getName());
      }
 else {
        CmsProperty<?,?> complexCmsProperty=parentComplexCmsProperty.getChildProperty(complexPropertyDefinition.getName());
        if (complexCmsProperty != null) {
          complexCmsProperties=new ArrayList<CmsProperty<?,?>>();
          complexCmsProperties.add(complexCmsProperty);
        }
      }
    }
  }
  if (CollectionUtils.isNotEmpty(complexCmsProperties)) {
    for (    CmsProperty<?,?> complexCmsProperty : complexCmsProperties) {
      if (StringUtils.isBlank(complexCmsProperty.getId())) {
        if (logger.isDebugEnabled()) {
          logger.debug("String_Node_Str",complexCmsProperty.getFullPath());
        }
        continue;
      }
 else {
        CmsPropertyInfo complexCmsPropertyInfo=new CmsPropertyInfo();
        complexCmsPropertyInfo.setId(complexCmsProperty.getId());
        complexCmsPropertyInfo.setFullPath(complexCmsProperty.getFullPath());
        complexCmsPropertyInfo.setCmsProperty(complexCmsProperty);
        complexCmsPropertyInfo.setName(complexCmsProperty.getName());
        complexCmsPropertyInfos.add(complexCmsPropertyInfo);
      }
    }
  }
  return complexCmsPropertyInfos;
}

Fixed version (ground truth):
protected List<CmsPropertyInfo> loadComplexCmsPropertyInfos(CmsPropertyDefinition complexPropertyDefinition){
  List<CmsPropertyInfo> complexCmsPropertyInfos=new ArrayList<CmsPropertyInfo>();
  ComplexCmsProperty<?,?> parentComplexCmsProperty=(ComplexCmsProperty<?,?>)contentObjectMarshalContext.getFirstComplexCmsPropertyInfo().getCmsProperty();
  if (parentComplexCmsProperty == null) {
    throw new CmsException("String_Node_Str" + complexPropertyDefinition.getFullPath());
  }
  List<CmsProperty<?,?>> complexCmsProperties=parentComplexCmsProperty.getChildProperties().get(complexPropertyDefinition.getName());
  if (CollectionUtils.isEmpty(complexCmsProperties)) {
    if (parentComplexCmsProperty.hasValueForChildProperty(complexPropertyDefinition.getName())) {
      if (complexPropertyDefinition.isMultiple()) {
        complexCmsProperties=parentComplexCmsProperty.getChildPropertyList(complexPropertyDefinition.getName());
      }
 else {
        CmsProperty<?,?> complexCmsProperty=parentComplexCmsProperty.getChildProperty(complexPropertyDefinition.getName());
        if (complexCmsProperty != null) {
          complexCmsProperties=new ArrayList<CmsProperty<?,?>>();
          complexCmsProperties.add(complexCmsProperty);
        }
      }
    }
  }
  if (CollectionUtils.isNotEmpty(complexCmsProperties)) {
    for (    CmsProperty<?,?> complexCmsProperty : complexCmsProperties) {
      CmsPropertyInfo complexCmsPropertyInfo=new CmsPropertyInfo();
      complexCmsPropertyInfo.setId(complexCmsProperty.getId());
      complexCmsPropertyInfo.setFullPath(complexCmsProperty.getFullPath());
      complexCmsPropertyInfo.setCmsProperty(complexCmsProperty);
      complexCmsPropertyInfo.setName(complexCmsProperty.getName());
      complexCmsPropertyInfos.add(complexCmsPropertyInfo);
    }
  }
  return complexCmsPropertyInfos;
}