Program: 64255
Project: 64255
Buggy source:
@Override public void setAttributeValueInObject(Object object,Object value){
  Invocation invocation=(Invocation)object;
  Vector values=(Vector)value;
  for (Iterator i=values.iterator(); i.hasNext(); ) {
    Object o=i.next();
    if (o instanceof Element) {
      Element e=(Element)o;
      String key=e.getLocalName();
      if ("String_Node_Str".equals(key)) {
        NodeList nl=e.getChildNodes();
        for (int j=0; j < nl.getLength(); j++) {
          Node n=nl.item(j);
          if (n.getNodeType() == Node.ELEMENT_NODE) {
            try {
              Object theInstance=dbwsAdapter.getXMLContext().createUnmarshaller().unmarshal(n);
              if (theInstance instanceof XMLRoot) {
                theInstance=((XMLRoot)theInstance).getObject();
              }
              invocation.setParameter(key,theInstance);
              break;
            }
 catch (            XMLMarshalException xmlMarshallException) {
              throw new WebServiceException(xmlMarshallException);
            }
          }
        }
      }
 else {
        ClassDescriptor desc=null;
        for (        XMLDescriptor xdesc : (List<XMLDescriptor>)(List)oxProject.getOrderedDescriptors()) {
          XMLSchemaReference schemaReference=xdesc.getSchemaReference();
          if (schemaReference != null && schemaReference.getSchemaContext().equalsIgnoreCase(key)) {
            desc=xdesc;
            break;
          }
        }
        if (desc != null) {
          try {
            Object theObject=dbwsAdapter.getXMLContext().createUnmarshaller().unmarshal(e,desc.getJavaClass());
            if (theObject instanceof XMLRoot) {
              theObject=((XMLRoot)theObject).getObject();
            }
            invocation.setParameter(key,theObject);
          }
 catch (          XMLMarshalException xmlMarshallException) {
            throw new WebServiceException(xmlMarshallException);
          }
        }
 else {
          String serviceName=e.getParentNode().getLocalName();
          boolean found=false;
          for (          Operation op : dbwsAdapter.getOperationsList()) {
            if (op.getName().equals(serviceName)) {
              for (              Parameter p : op.getParameters()) {
                if (p.getName().equals(key)) {
                  desc=dbwsAdapter.getDescriptorsByQName().get(p.getType());
                  if (desc != null) {
                    found=true;
                  }
                  break;
                }
              }
            }
            if (found) {
              break;
            }
          }
          if (found) {
            Object theObject=dbwsAdapter.getXMLContext().createUnmarshaller().unmarshal(e,desc.getJavaClass());
            if (theObject instanceof XMLRoot) {
              theObject=((XMLRoot)theObject).getObject();
            }
            invocation.setParameter(key,theObject);
          }
 else {
            StringBuffer sb=new StringBuffer();
            NodeList childNodes=e.getChildNodes();
            for (int idx=0; idx < childNodes.getLength(); idx++) {
              if (childNodes.item(idx).getNodeType() == Node.TEXT_NODE) {
                sb.append(childNodes.item(idx).getNodeValue());
              }
            }
            invocation.setParameter(key,sb.toString());
          }
        }
      }
    }
 else {
      XMLDescriptor descriptor=(XMLDescriptor)oxProject.getDescriptor(o.getClass());
      String key=descriptor.getDefaultRootElement();
      int idx=key.indexOf(':');
      if (idx != -1) {
        key=key.substring(idx + 1);
      }
      invocation.setParameter(key,o);
    }
  }
}

Fixed version (ground truth):
@SuppressWarnings("String_Node_Str") @Override public void setAttributeValueInObject(Object object,Object value){
  Invocation invocation=(Invocation)object;
  Vector values=(Vector)value;
  for (Iterator i=values.iterator(); i.hasNext(); ) {
    Object o=i.next();
    if (o instanceof Element) {
      Element e=(Element)o;
      String key=e.getLocalName();
      if ("String_Node_Str".equals(key)) {
        NodeList nl=e.getChildNodes();
        for (int j=0; j < nl.getLength(); j++) {
          Node n=nl.item(j);
          if (n.getNodeType() == Node.ELEMENT_NODE) {
            try {
              Object theInstance=dbwsAdapter.getXMLContext().createUnmarshaller().unmarshal(n);
              if (theInstance instanceof XMLRoot) {
                theInstance=((XMLRoot)theInstance).getObject();
              }
              invocation.setParameter(key,theInstance);
              break;
            }
 catch (            XMLMarshalException xmlMarshallException) {
              throw new WebServiceException(xmlMarshallException);
            }
          }
        }
      }
 else {
        ClassDescriptor desc=null;
        for (        XMLDescriptor xdesc : (List<XMLDescriptor>)(List)oxProject.getOrderedDescriptors()) {
          XMLSchemaReference schemaReference=xdesc.getSchemaReference();
          if (schemaReference != null && schemaReference.getSchemaContext().equalsIgnoreCase(key)) {
            desc=xdesc;
            break;
          }
        }
        if (desc != null) {
          try {
            Object theObject=dbwsAdapter.getXMLContext().createUnmarshaller().unmarshal(e,desc.getJavaClass());
            if (theObject instanceof XMLRoot) {
              theObject=((XMLRoot)theObject).getObject();
            }
            invocation.setParameter(key,theObject);
          }
 catch (          XMLMarshalException xmlMarshallException) {
            throw new WebServiceException(xmlMarshallException);
          }
        }
 else {
          String serviceName=e.getParentNode().getLocalName();
          boolean found=false;
          for (          Operation op : dbwsAdapter.getOperationsList()) {
            if (op.getName().equals(serviceName)) {
              for (              Parameter p : op.getParameters()) {
                if (p.getName().equals(key)) {
                  desc=dbwsAdapter.getDescriptorsByQName().get(p.getType());
                  if (desc != null) {
                    found=true;
                  }
                  break;
                }
              }
            }
            if (found) {
              break;
            }
          }
          if (found) {
            Object theObject=dbwsAdapter.getXMLContext().createUnmarshaller().unmarshal(e,desc.getJavaClass());
            if (theObject instanceof XMLRoot) {
              theObject=((XMLRoot)theObject).getObject();
            }
            invocation.setParameter(key,theObject);
          }
 else {
            StringBuffer sb=new StringBuffer();
            NodeList childNodes=e.getChildNodes();
            for (int idx=0; idx < childNodes.getLength(); idx++) {
              if (childNodes.item(idx).getNodeType() == Node.TEXT_NODE) {
                sb.append(childNodes.item(idx).getNodeValue());
              }
            }
            invocation.setParameter(key,sb.toString());
          }
        }
      }
    }
 else {
      XMLDescriptor descriptor=(XMLDescriptor)oxProject.getDescriptor(o.getClass());
      String key=descriptor.getDefaultRootElement();
      int idx=key.indexOf(':');
      if (idx != -1) {
        key=key.substring(idx + 1);
      }
      invocation.setParameter(key,o);
    }
  }
}