Program: 20110
Project: 20110
Buggy source:
@Override public Collection<SoaNodeInformation> findWSImplementations(JavaSource[] sources,Map<String,JavaServiceInterfaceInformation> wsInterfaces,MavenDeliverableInformation mavenDeliverable,CodeDiscoveryRegistryClient registryClient,Log log) throws Exception {
  List<SoaNodeInformation> discoveredNodes=new ArrayList<SoaNodeInformation>();
  for (  JavaSource source : sources) {
    JavaClass[] classes=source.getClasses();
    for (    JavaClass c : classes) {
      JavaClass itfClass=getWsItf(c,wsInterfaces);
      if (!c.isInterface() && (ParsingUtils.hasAnnotation(c,ANN_WS) || itfClass != null)) {
        JavaServiceInterfaceInformation interfaceInfo=null;
        String wsNamespace=null, wsName=null, serviceName=null;
        if (itfClass != null) {
          implsToInterfaces.put(c.asType(),itfClass.asType().getFullyQualifiedName());
          interfaceInfo=wsInterfaces.get(itfClass.getFullyQualifiedName());
          wsNamespace=interfaceInfo.getWsNamespace();
          wsName=interfaceInfo.getWsName();
          if (wsName == null) {
            wsName=itfClass.getName();
          }
        }
 else {
          log.warn("String_Node_Str" + c.getFullyQualifiedName());
        }
        if (ParsingUtils.hasAnnotation(c,ANN_WS)) {
          Annotation wsAnnotation=ParsingUtils.getAnnotation(c,ANN_WS);
          if (wsAnnotation.getNamedParameter("String_Node_Str") != null) {
            wsName=(String)wsAnnotation.getNamedParameter("String_Node_Str");
          }
          if (wsAnnotation.getNamedParameter("String_Node_Str") != null) {
            wsNamespace=(String)wsAnnotation.getNamedParameter("String_Node_Str");
          }
          serviceName=(String)wsAnnotation.getNamedParameter("String_Node_Str");
        }
        if (serviceName == null) {
          serviceName=c.getName();
        }
        JavaServiceImplementationInformation serviceImpl=new JavaServiceImplementationInformation(wsNamespace + "String_Node_Str" + wsName+ "String_Node_Str"+ serviceName);
        serviceImpl.setTitle(c.getName());
        serviceImpl.setProperty(JavaServiceImplementation.XPATH_WSDL_PORTTYPE_NAME,"String_Node_Str" + wsNamespace + "String_Node_Str"+ wsName);
        serviceImpl.setProperty(JavaServiceImplementation.XPATH_WSDL_SERVICE_NAME,"String_Node_Str" + wsNamespace + "String_Node_Str"+ serviceName);
        serviceImpl.setProperty(JavaServiceImplementation.XPATH_TECHNOLOGY,"String_Node_Str");
        serviceImpl.setProperty(JavaServiceImplementation.XPATH_ISMOCK,c.getSource().getURL().getPath().contains("String_Node_Str"));
        serviceImpl.setProperty(JavaServiceImplementation.XPATH_IMPLEMENTATIONCLASS,c.getFullyQualifiedName());
        if (itfClass != null) {
          serviceImpl.setProperty(JavaServiceImplementation.XPATH_IMPLEMENTEDINTERFACE,itfClass.getFullyQualifiedName());
          if (interfaceInfo != null) {
            serviceImpl.setProperty(JavaServiceImplementation.XPATH_IMPLEMENTEDINTERFACELOCATION,interfaceInfo.getMavenDeliverableId().getName());
          }
        }
        serviceImpl.addParentDocument(mavenDeliverable.getSoaNodeId());
        if (itfClass != null) {
          String itfClassName=itfClass.getName();
          InformationServiceInformation informationService=new InformationServiceInformation(wsNamespace + "String_Node_Str" + wsName);
          informationService.setProperty(InformationService.XPATH_WSDL_PORTTYPE_NAME,"String_Node_Str" + wsNamespace + "String_Node_Str"+ wsName);
          informationService.setTitle(itfClassName.substring(itfClassName.lastIndexOf("String_Node_Str") + 1));
          serviceImpl.setProperty(JavaServiceImplementation.XPATH_DOCUMENTATION,itfClass.getComment());
          discoveredNodes.add(informationService);
          List<OperationImplementation> operations=serviceImpl.getOperations();
          for (          JavaMethod method : itfClass.getMethods()) {
            if (ParsingUtils.hasAnnotation(method,ANN_WEBRESULT)) {
              Annotation webResultAnn=ParsingUtils.getAnnotation(method,ANN_WEBRESULT);
              StringBuilder parametersInfo=new StringBuilder();
              for (              JavaParameter parameter : method.getParameters()) {
                Annotation webParamAnn=ParsingUtils.getAnnotation(parameter,ANN_WEBPARAM);
                parametersInfo.append(webParamAnn.getProperty("String_Node_Str").getParameterValue() + "String_Node_Str" + parameter.getType().toString()+ "String_Node_Str");
              }
              operations.add(new OperationImplementation(webResultAnn.getProperty("String_Node_Str").toString(),parametersInfo.delete(parametersInfo.length() - 2,parametersInfo.length()).toString(),method.getComment()));
            }
          }
          serviceImpl.setOperations(operations);
        }
        discoveredNodes.add(serviceImpl);
      }
    }
  }
  return discoveredNodes;
}

Fixed version (ground truth):
@Override public Collection<SoaNodeInformation> findWSImplementations(JavaSource[] sources,Map<String,JavaServiceInterfaceInformation> wsInterfaces,MavenDeliverableInformation mavenDeliverable,CodeDiscoveryRegistryClient registryClient,Log log) throws Exception {
  List<SoaNodeInformation> discoveredNodes=new ArrayList<SoaNodeInformation>();
  for (  JavaSource source : sources) {
    JavaClass[] classes=source.getClasses();
    for (    JavaClass c : classes) {
      JavaClass itfClass=getWsItf(c,wsInterfaces);
      if (!c.isInterface() && (ParsingUtils.hasAnnotation(c,ANN_WS) || itfClass != null)) {
        JavaServiceInterfaceInformation interfaceInfo=null;
        String wsNamespace=null, wsName=null, serviceName=null;
        if (itfClass != null) {
          implsToInterfaces.put(c.asType(),itfClass.asType().getFullyQualifiedName());
          interfaceInfo=wsInterfaces.get(itfClass.getFullyQualifiedName());
          wsNamespace=interfaceInfo.getWsNamespace();
          wsName=interfaceInfo.getWsName();
          if (wsName == null) {
            wsName=itfClass.getName();
          }
        }
 else {
          log.warn("String_Node_Str" + c.getFullyQualifiedName());
        }
        if (ParsingUtils.hasAnnotation(c,ANN_WS)) {
          Annotation wsAnnotation=ParsingUtils.getAnnotation(c,ANN_WS);
          if (wsAnnotation.getNamedParameter("String_Node_Str") != null) {
            wsName=(String)wsAnnotation.getNamedParameter("String_Node_Str");
          }
          if (wsAnnotation.getNamedParameter("String_Node_Str") != null) {
            wsNamespace=(String)wsAnnotation.getNamedParameter("String_Node_Str");
          }
          serviceName=(String)wsAnnotation.getNamedParameter("String_Node_Str");
        }
        if (serviceName == null) {
          serviceName=c.getName();
        }
        JavaServiceImplementationInformation serviceImpl=new JavaServiceImplementationInformation(wsNamespace + "String_Node_Str" + wsName+ "String_Node_Str"+ serviceName);
        serviceImpl.setTitle(c.getName());
        serviceImpl.setProperty(JavaServiceImplementation.XPATH_WSDL_PORTTYPE_NAME,"String_Node_Str" + wsNamespace + "String_Node_Str"+ wsName);
        serviceImpl.setProperty(JavaServiceImplementation.XPATH_WSDL_SERVICE_NAME,"String_Node_Str" + wsNamespace + "String_Node_Str"+ serviceName);
        serviceImpl.setProperty(JavaServiceImplementation.XPATH_TECHNOLOGY,"String_Node_Str");
        serviceImpl.setProperty(JavaServiceImplementation.XPATH_ISMOCK,c.getSource().getURL().getPath().contains("String_Node_Str"));
        serviceImpl.setProperty(JavaServiceImplementation.XPATH_IMPLEMENTATIONCLASS,c.getFullyQualifiedName());
        if (itfClass != null) {
          serviceImpl.setProperty(JavaServiceImplementation.XPATH_IMPLEMENTEDINTERFACE,itfClass.getFullyQualifiedName());
          if (interfaceInfo != null) {
            serviceImpl.setProperty(JavaServiceImplementation.XPATH_IMPLEMENTEDINTERFACELOCATION,interfaceInfo.getMavenDeliverableId().getName());
          }
        }
        serviceImpl.addParentDocument(mavenDeliverable.getSoaNodeId());
        if (itfClass != null) {
          String itfClassName=itfClass.getName();
          InformationServiceInformation informationService=new InformationServiceInformation(wsNamespace + "String_Node_Str" + wsName);
          informationService.setProperty(InformationService.XPATH_WSDL_PORTTYPE_NAME,"String_Node_Str" + wsNamespace + "String_Node_Str"+ wsName);
          informationService.setTitle(itfClassName.substring(itfClassName.lastIndexOf("String_Node_Str") + 1));
          serviceImpl.setProperty(JavaServiceImplementation.XPATH_DOCUMENTATION,itfClass.getComment());
          discoveredNodes.add(informationService);
          List<OperationImplementation> operations=serviceImpl.getOperations();
          for (          JavaMethod method : itfClass.getMethods()) {
            if (ParsingUtils.hasAnnotation(method,ANN_WEBRESULT)) {
              Annotation webResultAnn=ParsingUtils.getAnnotation(method,ANN_WEBRESULT);
              StringBuilder parametersInfo=new StringBuilder();
              for (              JavaParameter parameter : method.getParameters()) {
                Annotation webParamAnn=ParsingUtils.getAnnotation(parameter,ANN_WEBPARAM);
                parametersInfo.append(webParamAnn.getProperty("String_Node_Str").getParameterValue() + "String_Node_Str" + parameter.getType().toString()+ "String_Node_Str");
              }
              operations.add(new OperationImplementation(webResultAnn.getProperty("String_Node_Str").toString(),(parametersInfo.length() > 2) ? parametersInfo.delete(parametersInfo.length() - 2,parametersInfo.length()).toString() : null,method.getComment()));
            }
          }
          serviceImpl.setOperations(operations);
        }
        discoveredNodes.add(serviceImpl);
      }
    }
  }
  return discoveredNodes;
}