Program: 63383
Project: 63383
Buggy source:
@SuppressWarnings("String_Node_Str") public void init(ClassLoader parentClassLoader,ServletContext sc,boolean mtomEnabled){
  this.parentClassLoader=parentClassLoader;
  this.mtomEnabled=mtomEnabled;
  InputStream xrServiceStream=initXRServiceStream(parentClassLoader,sc);
  DBWSModelProject xrServiceModelProject=new DBWSModelProject();
  XMLContext xmlContext=new XMLContext(xrServiceModelProject);
  XMLUnmarshaller unmarshaller=xmlContext.createUnmarshaller();
  XRServiceModel xrServiceModel;
  try {
    xrServiceModel=(XRServiceModel)unmarshaller.unmarshal(xrServiceStream);
  }
 catch (  XMLMarshalException e) {
    throw new WebServiceException(DBWSException.couldNotParseDBWSFile());
  }
 finally {
    try {
      xrServiceStream.close();
    }
 catch (    IOException e) {
    }
  }
  xrSchemaStream=initXRSchemaStream(parentClassLoader,sc);
  try {
    buildService(xrServiceModel);
  }
 catch (  Exception e) {
    throw new WebServiceException(e);
  }
  DBWSAdapter dbwsAdapter=(DBWSAdapter)xrService;
  InputStream wsdlInputStream=initWSDLInputStream(parentClassLoader,sc);
  try {
    StringWriter sw=new StringWriter();
    StreamSource wsdlStreamSource=new StreamSource(wsdlInputStream);
    Transformer t=TransformerFactory.newInstance().newTransformer(new StreamSource(new StringReader(MATCH_SCHEMA)));
    StreamResult streamResult=new StreamResult(sw);
    t.transform(wsdlStreamSource,streamResult);
    sw.toString();
    wsdlInputStream.close();
    SchemaModelProject schemaProject=new SchemaModelProject();
    XMLContext xmlContext2=new XMLContext(schemaProject);
    unmarshaller=xmlContext2.createUnmarshaller();
    Schema extendedSchema=(Schema)unmarshaller.unmarshal(new StringReader(sw.toString()));
    dbwsAdapter.setExtendedSchema(extendedSchema);
  }
 catch (  Exception e) {
  }
 finally {
    try {
      wsdlInputStream.close();
    }
 catch (    IOException e) {
    }
  }
  String tns=dbwsAdapter.getExtendedSchema().getTargetNamespace();
  Project oxProject=dbwsAdapter.getOXSession().getProject();
  XMLDescriptor invocationDescriptor=new XMLDescriptor();
  invocationDescriptor.setJavaClass(Invocation.class);
  NamespaceResolver nr=new NamespaceResolver();
  invocationDescriptor.setNamespaceResolver(nr);
  nr.put(SERVICE_NAMESPACE_PREFIX,tns);
  nr.setDefaultNamespaceURI(tns);
  XMLAnyCollectionMapping parametersMapping=new XMLAnyCollectionMapping();
  parametersMapping.setAttributeName("String_Node_Str");
  parametersMapping.setAttributeAccessor(new AttributeAccessor(){
    Project oxProject;
    DBWSAdapter dbwsAdapter;
    @Override public Object getAttributeValueFromObject(    Object object){
      return ((Invocation)object).getParameters();
    }
    @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 {
                StringBuilder sb=new StringBuilder();
                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);
        }
      }
    }
    public AttributeAccessor setProjectAndAdapter(    Project oxProject,    DBWSAdapter dbwsAdapter){
      this.oxProject=oxProject;
      this.dbwsAdapter=dbwsAdapter;
      return this;
    }
  }
.setProjectAndAdapter(oxProject,dbwsAdapter));
  parametersMapping.setKeepAsElementPolicy(KEEP_UNKNOWN_AS_ELEMENT);
  invocationDescriptor.addMapping(parametersMapping);
  oxProject.addDescriptor(invocationDescriptor);
  ((DatabaseSessionImpl)dbwsAdapter.getOXSession()).initializeDescriptorIfSessionAlive(invocationDescriptor);
  dbwsAdapter.getXMLContext().storeXMLDescriptorByQName(invocationDescriptor);
  responseWriter=new SOAPResponseWriter(dbwsAdapter);
  responseWriter.initialize();
}

Fixed version (ground truth):
@SuppressWarnings("String_Node_Str") public void init(ClassLoader parentClassLoader,ServletContext sc,boolean mtomEnabled){
  this.parentClassLoader=parentClassLoader;
  this.mtomEnabled=mtomEnabled;
  InputStream xrServiceStream=initXRServiceStream(parentClassLoader,sc);
  DBWSModelProject xrServiceModelProject=new DBWSModelProject();
  XMLContext xmlContext=new XMLContext(xrServiceModelProject);
  XMLUnmarshaller unmarshaller=xmlContext.createUnmarshaller();
  XRServiceModel xrServiceModel;
  try {
    xrServiceModel=(XRServiceModel)unmarshaller.unmarshal(xrServiceStream);
  }
 catch (  XMLMarshalException e) {
    throw new WebServiceException(DBWSException.couldNotParseDBWSFile());
  }
 finally {
    try {
      xrServiceStream.close();
    }
 catch (    IOException e) {
    }
  }
  xrSchemaStream=initXRSchemaStream(parentClassLoader,sc);
  try {
    buildService(xrServiceModel);
  }
 catch (  Exception e) {
    throw new WebServiceException(e);
  }
  DBWSAdapter dbwsAdapter=(DBWSAdapter)xrService;
  try (InputStream wsdlInputStream=initWSDLInputStream(parentClassLoader,sc)){
    StringWriter sw=new StringWriter();
    StreamSource wsdlStreamSource=new StreamSource(wsdlInputStream);
    Transformer t=TransformerFactory.newInstance().newTransformer(new StreamSource(new StringReader(MATCH_SCHEMA)));
    StreamResult streamResult=new StreamResult(sw);
    t.transform(wsdlStreamSource,streamResult);
    SchemaModelProject schemaProject=new SchemaModelProject();
    XMLContext xmlContext2=new XMLContext(schemaProject);
    unmarshaller=xmlContext2.createUnmarshaller();
    Schema extendedSchema=(Schema)unmarshaller.unmarshal(new StringReader(sw.toString()));
    dbwsAdapter.setExtendedSchema(extendedSchema);
  }
 catch (  IOException|TransformerException e) {
  }
  String tns=dbwsAdapter.getExtendedSchema().getTargetNamespace();
  Project oxProject=dbwsAdapter.getOXSession().getProject();
  XMLDescriptor invocationDescriptor=new XMLDescriptor();
  invocationDescriptor.setJavaClass(Invocation.class);
  NamespaceResolver nr=new NamespaceResolver();
  invocationDescriptor.setNamespaceResolver(nr);
  nr.put(SERVICE_NAMESPACE_PREFIX,tns);
  nr.setDefaultNamespaceURI(tns);
  XMLAnyCollectionMapping parametersMapping=new XMLAnyCollectionMapping();
  parametersMapping.setAttributeName("String_Node_Str");
  parametersMapping.setAttributeAccessor(new AttributeAccessor(){
    Project oxProject;
    DBWSAdapter dbwsAdapter;
    @Override public Object getAttributeValueFromObject(    Object object){
      return ((Invocation)object).getParameters();
    }
    @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 {
                StringBuilder sb=new StringBuilder();
                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);
        }
      }
    }
    public AttributeAccessor setProjectAndAdapter(    Project oxProject,    DBWSAdapter dbwsAdapter){
      this.oxProject=oxProject;
      this.dbwsAdapter=dbwsAdapter;
      return this;
    }
  }
.setProjectAndAdapter(oxProject,dbwsAdapter));
  parametersMapping.setKeepAsElementPolicy(KEEP_UNKNOWN_AS_ELEMENT);
  invocationDescriptor.addMapping(parametersMapping);
  oxProject.addDescriptor(invocationDescriptor);
  ((DatabaseSessionImpl)dbwsAdapter.getOXSession()).initializeDescriptorIfSessionAlive(invocationDescriptor);
  dbwsAdapter.getXMLContext().storeXMLDescriptorByQName(invocationDescriptor);
  responseWriter=new SOAPResponseWriter(dbwsAdapter);
  responseWriter.initialize();
}