Program: 65637
Project: 65637
Buggy source:
/** 
 * INTERNAL: Build the nested collection from the database row.
 */
public Object valueFromRow(AbstractRecord row,JoinedAttributeManager joinManager,ObjectBuildingQuery sourceQuery,CacheKey cacheKey,AbstractSession executionSession,boolean isTargetProtected,Boolean[] wasCacheUsed) throws DatabaseException {
  ContainerPolicy cp=this.getContainerPolicy();
  DOMRecord domRecord=(DOMRecord)row;
  Object fieldValue=domRecord.getValues(this.getField(),this.getNullPolicy());
  if (fieldValue == null) {
    if (reuseContainer) {
      Object currentObject=((XMLRecord)row).getCurrentObject();
      Object container=getAttributeAccessor().getAttributeValueFromObject(currentObject);
      return container != null ? container : cp.containerInstance();
    }
 else {
      return cp.containerInstance();
    }
  }
  Vector fieldValues=this.getDescriptor().buildDirectValuesFromFieldValue(fieldValue);
  if (fieldValues == null) {
    if (reuseContainer) {
      Object currentObject=((XMLRecord)row).getCurrentObject();
      Object container=getAttributeAccessor().getAttributeValueFromObject(currentObject);
      return container != null ? container : cp.containerInstance();
    }
 else {
      return cp.containerInstance();
    }
  }
  Object result=null;
  if (reuseContainer) {
    Object currentObject=((XMLRecord)row).getCurrentObject();
    Object container=getAttributeAccessor().getAttributeValueFromObject(currentObject);
    result=container != null ? container : cp.containerInstance();
  }
 else {
    result=cp.containerInstance(fieldValues.size());
  }
  for (Enumeration stream=fieldValues.elements(); stream.hasMoreElements(); ) {
    Object element=stream.nextElement();
    if (hasValueConverter()) {
      if (getValueConverter() instanceof XMLConverter) {
        element=((XMLConverter)getValueConverter()).convertDataValueToObjectValue(element,executionSession,((XMLRecord)row).getUnmarshaller());
      }
 else {
        element=getValueConverter().convertDataValueToObjectValue(element,executionSession);
      }
    }
    cp.addInto(element,result,sourceQuery.getSession());
  }
  return result;
}

Fixed version (ground truth):
/** 
 * INTERNAL: Build the nested collection from the database row.
 */
public Object valueFromRow(AbstractRecord row,JoinedAttributeManager joinManager,ObjectBuildingQuery sourceQuery,CacheKey cacheKey,AbstractSession executionSession,boolean isTargetProtected,Boolean[] wasCacheUsed) throws DatabaseException {
  ContainerPolicy cp=this.getContainerPolicy();
  DOMRecord domRecord=(DOMRecord)row;
  Object fieldValue=domRecord.getValues(this.getField(),this.getNullPolicy());
  if (fieldValue == null) {
    if (reuseContainer) {
      Object currentObject=((XMLRecord)row).getCurrentObject();
      Object container=getAttributeAccessor().getAttributeValueFromObject(currentObject);
      return container != null ? container : cp.containerInstance();
    }
 else {
      return cp.containerInstance();
    }
  }
  Vector fieldValues=this.getDescriptor().buildDirectValuesFromFieldValue(fieldValue);
  if (fieldValues == null) {
    if (reuseContainer) {
      Object currentObject=((XMLRecord)row).getCurrentObject();
      Object container=getAttributeAccessor().getAttributeValueFromObject(currentObject);
      return container != null ? container : cp.containerInstance();
    }
 else {
      return cp.containerInstance();
    }
  }
  Object result=null;
  if (reuseContainer) {
    Object currentObject=((XMLRecord)row).getCurrentObject();
    Object container=getAttributeAccessor().getAttributeValueFromObject(currentObject);
    result=container != null ? container : cp.containerInstance();
  }
 else {
    result=cp.containerInstance(fieldValues.size());
  }
  for (Enumeration stream=fieldValues.elements(); stream.hasMoreElements(); ) {
    Object element=stream.nextElement();
    if (hasValueConverter()) {
      if (getValueConverter() instanceof XMLConverter) {
        element=((XMLConverter)getValueConverter()).convertDataValueToObjectValue(element,executionSession,((XMLRecord)row).getUnmarshaller());
      }
 else {
        element=getValueConverter().convertDataValueToObjectValue(element,executionSession);
      }
    }
    if (element != null && element.getClass() == ClassConstants.STRING) {
      if (isCollapsingStringValues) {
        element=XMLConversionManager.getDefaultXMLManager().collapseStringValue((String)element);
      }
 else       if (isNormalizingStringValues) {
        element=XMLConversionManager.getDefaultXMLManager().normalizeStringValue((String)element);
      }
    }
    cp.addInto(element,result,sourceQuery.getSession());
  }
  return result;
}