Program: 141684
Project: 141684
Buggy source:
@SuppressWarnings("String_Node_Str") private void process(Definition wsdlDefinition,Collection<XmlFileConnectionItem> selectTables) throws IOException {
  Map<String,File> fileToSchemaMap=new HashMap<String,File>();
  File zip=null;
  final SchemaUtil schemaUtil=new SchemaUtil(wsdlDefinition);
  try {
    populationUtil=new XSDPopulationUtil2();
    for (    XmlSchema schema : schemaUtil.getSchemas()) {
      File file=initFileContent(schema);
      String ns=schema.getTargetNamespace();
      fileToSchemaMap.put(ns != null ? ns : "String_Node_Str",file);
      populationUtil.addSchema(file.getPath());
    }
    zip=File.createTempFile("String_Node_Str","String_Node_Str");
    Collection<File> files=fileToSchemaMap.values();
    org.talend.utils.io.FilesUtils.zips(files.toArray(new File[files.size()]),zip.getPath());
    final Set<QName> portTypes=new HashSet<QName>();
    final Set<QName> alreadyCreated=new HashSet<QName>();
    for (    Binding binding : (Collection<Binding>)wsdlDefinition.getAllBindings().values()) {
      final QName portType=binding.getPortType().getQName();
      if (portTypes.add(portType)) {
        for (        BindingOperation operation : (Collection<BindingOperation>)binding.getBindingOperations()) {
          Operation oper=operation.getOperation();
          Input inDef=oper.getInput();
          if (inDef != null) {
            Message inMsg=inDef.getMessage();
            if (inMsg != null) {
              QName parameterFromMessage=getParameterFromMessage(inMsg);
              if (parameterFromMessage == null) {
                continue;
              }
              if (alreadyCreated.add(parameterFromMessage)) {
                File schemaFile=fileToSchemaMap.get(parameterFromMessage.getNamespaceURI());
                if (null != schemaFile) {
                  XsdMetadataUtils.createMetadataFromXSD(parameterFromMessage,portType.getLocalPart(),oper.getName(),schemaFile,selectTables,zip,populationUtil);
                }
              }
            }
          }
          Output outDef=oper.getOutput();
          if (outDef != null) {
            Message outMsg=outDef.getMessage();
            if (outMsg != null) {
              QName parameterFromMessage=getParameterFromMessage(outMsg);
              if (parameterFromMessage == null) {
                continue;
              }
              if (alreadyCreated.add(parameterFromMessage)) {
                File schemaFile=fileToSchemaMap.get(parameterFromMessage.getNamespaceURI());
                if (null != schemaFile) {
                  XsdMetadataUtils.createMetadataFromXSD(parameterFromMessage,portType.getLocalPart(),oper.getName(),schemaFile,selectTables,zip,populationUtil);
                }
              }
            }
          }
          for (          Fault fault : (Collection<Fault>)oper.getFaults().values()) {
            Message faultMsg=fault.getMessage();
            if (faultMsg != null) {
              QName parameterFromMessage=getParameterFromMessage(faultMsg);
              if (parameterFromMessage == null) {
                continue;
              }
              if (alreadyCreated.add(parameterFromMessage)) {
                File schemaFile=fileToSchemaMap.get(parameterFromMessage.getNamespaceURI());
                if (null != schemaFile) {
                  XsdMetadataUtils.createMetadataFromXSD(parameterFromMessage,portType.getLocalPart(),oper.getName(),schemaFile,selectTables,zip,populationUtil);
                }
              }
            }
          }
        }
      }
    }
  }
 catch (  IOException e) {
    throw e;
  }
 finally {
    for (    File file : fileToSchemaMap.values()) {
      file.delete();
    }
    if (null != zip) {
      zip.delete();
    }
  }
}

Fixed version (ground truth):
@SuppressWarnings("String_Node_Str") private void process(Definition wsdlDefinition,Collection<XmlFileConnectionItem> selectTables) throws IOException, CoreException {
  try {
    File wsdlFile=null;
    String baseUri=wsdlDefinition.getDocumentBaseURI();
    try {
      URI uri=new URI(baseUri);
      wsdlFile=new File(uri.toURL().getFile());
    }
 catch (    URISyntaxException e) {
      wsdlFile=new File(baseUri);
    }
    if (populationUtil == null) {
      populationUtil=new WSDLPopulationUtil();
      populationUtil.loadWSDL(baseUri);
    }
    final Set<QName> portTypes=new HashSet<QName>();
    final Set<QName> alreadyCreated=new HashSet<QName>();
    for (    Binding binding : (Collection<Binding>)wsdlDefinition.getAllBindings().values()) {
      final QName portType=binding.getPortType().getQName();
      if (portTypes.add(portType)) {
        for (        BindingOperation operation : (Collection<BindingOperation>)binding.getBindingOperations()) {
          Operation oper=operation.getOperation();
          Input inDef=oper.getInput();
          if (inDef != null) {
            Message inMsg=inDef.getMessage();
            if (inMsg != null) {
              QName parameterFromMessage=getParameterFromMessage(inMsg);
              if (parameterFromMessage == null) {
                continue;
              }
              if (alreadyCreated.add(parameterFromMessage)) {
                XsdMetadataUtils.createMetadataFromXSD(parameterFromMessage,portType.getLocalPart(),oper.getName(),selectTables,wsdlFile,populationUtil);
              }
            }
          }
          Output outDef=oper.getOutput();
          if (outDef != null) {
            Message outMsg=outDef.getMessage();
            if (outMsg != null) {
              QName parameterFromMessage=getParameterFromMessage(outMsg);
              if (parameterFromMessage == null) {
                continue;
              }
              if (alreadyCreated.add(parameterFromMessage)) {
                XsdMetadataUtils.createMetadataFromXSD(parameterFromMessage,portType.getLocalPart(),oper.getName(),selectTables,wsdlFile,populationUtil);
              }
            }
          }
          for (          Fault fault : (Collection<Fault>)oper.getFaults().values()) {
            Message faultMsg=fault.getMessage();
            if (faultMsg != null) {
              QName parameterFromMessage=getParameterFromMessage(faultMsg);
              if (parameterFromMessage == null) {
                continue;
              }
              if (alreadyCreated.add(parameterFromMessage)) {
                XsdMetadataUtils.createMetadataFromXSD(parameterFromMessage,portType.getLocalPart(),oper.getName(),selectTables,wsdlFile,populationUtil);
              }
            }
          }
        }
      }
    }
  }
 catch (  IOException e) {
    throw e;
  }
}