Program: 68660
Project: 68660
Buggy source:
public Object valueFromRow(AbstractRecord row,JoinedAttributeManager joinManager,ObjectBuildingQuery query,AbstractSession executionSession){
  ContainerPolicy cp=this.getContainerPolicy();
  Object fieldValue=row.getValues(this.getField());
  if (fieldValue == null) {
    return cp.containerInstance();
  }
  Vector fieldValues=this.getDescriptor().buildDirectValuesFromFieldValue(fieldValue);
  if (fieldValues == null) {
    return cp.containerInstance();
  }
  Object result=cp.containerInstance(fieldValues.size());
  for (Enumeration stream=fieldValues.elements(); stream.hasMoreElements(); ) {
    Object element=stream.nextElement();
    XMLUnmarshaller unmarshaller=((XMLRecord)row).getUnmarshaller();
    if (element instanceof String) {
      if (this.isSwaRef() && (unmarshaller.getAttachmentUnmarshaller() != null)) {
        fieldValue=unmarshaller.getAttachmentUnmarshaller().getAttachmentAsDataHandler((String)element);
      }
 else       if (!this.isSwaRef()) {
        byte[] bytes=((XMLConversionManager)executionSession.getDatasourcePlatform().getConversionManager()).convertSchemaBase64ToByteArray(element);
        fieldValue=bytes;
      }
    }
 else {
      XMLRecord record=(XMLRecord)element;
      if ((unmarshaller.getAttachmentUnmarshaller() != null) && unmarshaller.getAttachmentUnmarshaller().isXOPPackage() && !this.isSwaRef()&& !this.shouldInlineBinaryData()) {
        String xpath="String_Node_Str";
        NamespaceResolver resolver=((XMLDescriptor)getDescriptor()).getNamespaceResolver();
        String prefix=null;
        if (resolver != null) {
          prefix=resolver.resolveNamespaceURI(XMLConstants.XOP_URL);
          if (prefix == null) {
            prefix=resolver.generatePrefix();
            resolver.put(prefix,XMLConstants.XOP_URL);
          }
        }
 else {
          prefix=XMLConstants.XOP_PREFIX;
          resolver=new NamespaceResolver();
          resolver.put(prefix,XMLConstants.XOP_URL);
        }
        xpath=prefix + "String_Node_Str" + INCLUDE+ "String_Node_Str";
        XMLField field=new XMLField(xpath);
        field.setNamespaceResolver(resolver);
        String includeValue=(String)record.get(field);
        if (element != null) {
          if ((getCollectionContentType() == ClassConstants.ABYTE) || (getCollectionContentType() == ClassConstants.APBYTE)) {
            fieldValue=unmarshaller.getAttachmentUnmarshaller().getAttachmentAsByteArray(includeValue);
          }
 else {
            fieldValue=unmarshaller.getAttachmentUnmarshaller().getAttachmentAsDataHandler(includeValue);
          }
        }
      }
 else       if ((unmarshaller.getAttachmentUnmarshaller() != null) && isSwaRef()) {
        String refValue=(String)record.get("String_Node_Str");
        if (refValue != null) {
          fieldValue=unmarshaller.getAttachmentUnmarshaller().getAttachmentAsDataHandler(refValue);
        }
      }
 else {
        fieldValue=record.get("String_Node_Str");
        fieldValue=((XMLConversionManager)executionSession.getDatasourcePlatform().getConversionManager()).convertSchemaBase64ToByteArray(fieldValue);
      }
    }
    Object attributeValue=fieldValue;
    if (getValueConverter() != null) {
      if (getValueConverter() instanceof XMLConverter) {
        attributeValue=((XMLConverter)getValueConverter()).convertDataValueToObjectValue(fieldValue,executionSession,unmarshaller);
      }
 else {
        attributeValue=getValueConverter().convertDataValueToObjectValue(fieldValue,executionSession);
      }
    }
    if (collectionContentType != null) {
      attributeValue=XMLBinaryDataHelper.getXMLBinaryDataHelper().convertObject(attributeValue,collectionContentType,executionSession);
    }
    cp.addInto(attributeValue,result,query.getSession());
  }
  return result;
}

Fixed version (ground truth):
public Object valueFromRow(AbstractRecord row,JoinedAttributeManager joinManager,ObjectBuildingQuery query,AbstractSession executionSession){
  ContainerPolicy cp=this.getContainerPolicy();
  Object fieldValue=row.getValues(this.getField());
  if (fieldValue == null) {
    return cp.containerInstance();
  }
  Vector fieldValues=this.getDescriptor().buildDirectValuesFromFieldValue(fieldValue);
  if (fieldValues == null) {
    return cp.containerInstance();
  }
  Object result=cp.containerInstance(fieldValues.size());
  for (Enumeration stream=fieldValues.elements(); stream.hasMoreElements(); ) {
    Object element=stream.nextElement();
    XMLUnmarshaller unmarshaller=((XMLRecord)row).getUnmarshaller();
    if (element instanceof String) {
      if (this.isSwaRef() && (unmarshaller.getAttachmentUnmarshaller() != null)) {
        fieldValue=unmarshaller.getAttachmentUnmarshaller().getAttachmentAsDataHandler((String)element);
      }
 else       if (!this.isSwaRef()) {
        byte[] bytes=((XMLConversionManager)executionSession.getDatasourcePlatform().getConversionManager()).convertSchemaBase64ToByteArray(element);
        fieldValue=bytes;
      }
    }
 else {
      XMLRecord record=(XMLRecord)element;
      if ((unmarshaller.getAttachmentUnmarshaller() != null) && unmarshaller.getAttachmentUnmarshaller().isXOPPackage() && !this.isSwaRef()&& !this.shouldInlineBinaryData()) {
        String xpath="String_Node_Str";
        String prefix=null;
        NamespaceResolver descriptorResolver=((XMLDescriptor)getDescriptor()).getNamespaceResolver();
        if (descriptorResolver != null) {
          prefix=descriptorResolver.resolveNamespaceURI(XMLConstants.XOP_URL);
        }
        if (prefix == null) {
          prefix=XMLConstants.XOP_PREFIX;
        }
        NamespaceResolver tempResolver=new NamespaceResolver();
        tempResolver.put(prefix,XMLConstants.XOP_URL);
        xpath=prefix + "String_Node_Str" + INCLUDE+ "String_Node_Str";
        XMLField field=new XMLField(xpath);
        field.setNamespaceResolver(tempResolver);
        String includeValue=(String)record.get(field);
        if (element != null) {
          if ((getCollectionContentType() == ClassConstants.ABYTE) || (getCollectionContentType() == ClassConstants.APBYTE)) {
            fieldValue=unmarshaller.getAttachmentUnmarshaller().getAttachmentAsByteArray(includeValue);
          }
 else {
            fieldValue=unmarshaller.getAttachmentUnmarshaller().getAttachmentAsDataHandler(includeValue);
          }
        }
      }
 else       if ((unmarshaller.getAttachmentUnmarshaller() != null) && isSwaRef()) {
        String refValue=(String)record.get("String_Node_Str");
        if (refValue != null) {
          fieldValue=unmarshaller.getAttachmentUnmarshaller().getAttachmentAsDataHandler(refValue);
        }
      }
 else {
        fieldValue=record.get("String_Node_Str");
        fieldValue=((XMLConversionManager)executionSession.getDatasourcePlatform().getConversionManager()).convertSchemaBase64ToByteArray(fieldValue);
      }
    }
    Object attributeValue=fieldValue;
    if (getValueConverter() != null) {
      if (getValueConverter() instanceof XMLConverter) {
        attributeValue=((XMLConverter)getValueConverter()).convertDataValueToObjectValue(fieldValue,executionSession,unmarshaller);
      }
 else {
        attributeValue=getValueConverter().convertDataValueToObjectValue(fieldValue,executionSession);
      }
    }
    if (collectionContentType != null) {
      attributeValue=XMLBinaryDataHelper.getXMLBinaryDataHelper().convertObject(attributeValue,collectionContentType,executionSession);
    }
    cp.addInto(attributeValue,result,query.getSession());
  }
  return result;
}