Program: 20120
Project: 20120
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) {
      if (!c.isInterface() && (ParsingUtils.hasAnnotation(c,ANN_WS) || getWsItf(c,wsInterfaces) != null)) {
        JavaClass itfClass=getWsItf(c,wsInterfaces);
        implsToInterfaces.put(c.asType(),itfClass.asType());
        JavaServiceImplementationInformation serviceImpl=new JavaServiceImplementationInformation(c.getFullyQualifiedName());
        serviceImpl.setTitle(c.getName());
        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_IMPLEMENTEDINTERFACE,itfClass.getFullyQualifiedName());
        serviceImpl.addParentDocument(mavenDeliverable.getSoaNodeId());
        discoveredNodes.add(serviceImpl);
        ServiceInformation serviceDef=new ServiceInformation(itfClass.getName());
        serviceImpl.addParentDocument(serviceDef.getSoaNodeId());
        serviceImpl.setProperty(JavaServiceImplementation.XPATH_DOCUMENTATION,itfClass.getComment());
        discoveredNodes.add(serviceDef);
        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);
      }
    }
  }
  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) {
      if (!c.isInterface() && (ParsingUtils.hasAnnotation(c,ANN_WS) || getWsItf(c,wsInterfaces) != null)) {
        JavaClass itfClass=getWsItf(c,wsInterfaces);
        if (itfClass != null) {
          implsToInterfaces.put(c.asType(),itfClass.asType());
        }
 else {
          log.warn("String_Node_Str" + c.getFullyQualifiedName());
        }
        JavaServiceImplementationInformation serviceImpl=new JavaServiceImplementationInformation(c.getFullyQualifiedName());
        serviceImpl.setTitle(c.getName());
        serviceImpl.setProperty(JavaServiceImplementation.XPATH_TECHNOLOGY,"String_Node_Str");
        serviceImpl.setProperty(JavaServiceImplementation.XPATH_ISMOCK,c.getSource().getURL().getPath().contains("String_Node_Str"));
        if (itfClass != null) {
          serviceImpl.setProperty(JavaServiceImplementation.XPATH_IMPLEMENTEDINTERFACE,itfClass.getFullyQualifiedName());
        }
        serviceImpl.addParentDocument(mavenDeliverable.getSoaNodeId());
        discoveredNodes.add(serviceImpl);
        if (itfClass != null) {
          ServiceInformation serviceDef=new ServiceInformation(itfClass.getName());
          serviceImpl.addParentDocument(serviceDef.getSoaNodeId());
          serviceImpl.setProperty(JavaServiceImplementation.XPATH_DOCUMENTATION,itfClass.getComment());
          discoveredNodes.add(serviceDef);
          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);
        }
      }
    }
  }
  return discoveredNodes;
}