Program: 94171
Project: 94171
Buggy source:
/** 
 * @param servers
 * @return
 * @throws Exception
 */
private void doProxy(String service,List<InetSocketAddress> serversList) throws Exception {
  List<InetSocketAddress> servers=serversList;
  if (CollectionUtils.isEmpty(servers)) {
    servers=new ArrayList<InetSocketAddress>();
  }
  LoadBalanceProxyFactoryBean lbProxyBean=new LoadBalanceProxyFactoryBean();
  lbProxyBean.setServiceInterface(interfaceClass);
  List<ProtobufRpcProxy<T>> protobufRpcProxyList=new ArrayList<ProtobufRpcProxy<T>>();
  Map<String,String> serverUrls=new HashMap<String,String>(servers.size());
  Map<String,Object> targetBeans=new HashMap<String,Object>();
  for (  InetSocketAddress address : servers) {
    String serviceUrl=address.getHostName() + "String_Node_Str" + address.getPort();
    serverUrls.put(serviceUrl,serviceUrl);
    ProtobufRpcProxy<T> protobufRpcProxy=onBuildProtobufRpcProxy(rpcClient,interfaceClass);
    protobufRpcProxy.setHost(address.getHostName());
    protobufRpcProxy.setPort(address.getPort());
    protobufRpcProxy.setLookupStubOnStartup(lookupStubOnStartup);
    T rpc=protobufRpcProxy.proxy();
    protobufRpcProxyList.add(protobufRpcProxy);
    targetBeans.put(serviceUrl,rpc);
  }
  if (loadBalanceStrategy == null) {
    loadBalanceStrategy=new RoundRobinLoadBalanceStrategy(service,namingService);
  }
  lbProxyBean.setLoadBalanceStrategy(loadBalanceStrategy);
  if (failOverInterceptor == null) {
    SocketFailOverInterceptor socketFailOverInterceptor=new SocketFailOverInterceptor();
    socketFailOverInterceptor.setRecoverServiceUrls(serverUrls);
    failOverInterceptor=socketFailOverInterceptor;
  }
  lbProxyBean.setFailOverInterceptor(failOverInterceptor);
  lbProxyBean.setTargetBeans(targetBeans);
  lbProxyBean.afterPropertiesSet();
  protobufRpcProxyListMap.put(service,protobufRpcProxyList);
  lbMap.put(service,lbProxyBean);
  instancesMap.put(service,(T)lbProxyBean.getObject());
}

Fixed version (ground truth):
/** 
 * @param servers
 * @return
 * @throws Exception
 */
private void doProxy(String service,List<InetSocketAddress> serversList) throws Exception {
  List<InetSocketAddress> servers=serversList;
  if (CollectionUtils.isEmpty(servers)) {
    servers=new ArrayList<InetSocketAddress>();
  }
  LoadBalanceProxyFactoryBean lbProxyBean=new LoadBalanceProxyFactoryBean();
  lbProxyBean.setServiceInterface(interfaceClass);
  List<ProtobufRpcProxy<T>> protobufRpcProxyList=new ArrayList<ProtobufRpcProxy<T>>();
  Map<String,String> serverUrls=new HashMap<String,String>(servers.size());
  Map<String,Object> targetBeans=new HashMap<String,Object>();
  for (  InetSocketAddress address : servers) {
    String serviceUrl=address.getHostName() + "String_Node_Str" + address.getPort();
    serverUrls.put(serviceUrl,serviceUrl);
    ProtobufRpcProxy<T> protobufRpcProxy=onBuildProtobufRpcProxy(rpcClient,interfaceClass);
    protobufRpcProxy.setHost(address.getHostName());
    protobufRpcProxy.setPort(address.getPort());
    protobufRpcProxy.setLookupStubOnStartup(lookupStubOnStartup);
    T rpc=protobufRpcProxy.proxy();
    protobufRpcProxyList.add(protobufRpcProxy);
    targetBeans.put(serviceUrl,rpc);
  }
  if (loadBalanceStrategyFactory == null) {
    loadBalanceStrategyFactory=new RRNamingServiceLoadBalanceStrategyFactory();
  }
  lbProxyBean.setLoadBalanceStrategy(loadBalanceStrategyFactory.create(service,namingService));
  if (failOverInterceptor == null) {
    SocketFailOverInterceptor socketFailOverInterceptor=new SocketFailOverInterceptor();
    socketFailOverInterceptor.setRecoverServiceUrls(serverUrls);
    failOverInterceptor=socketFailOverInterceptor;
  }
  lbProxyBean.setFailOverInterceptor(failOverInterceptor);
  lbProxyBean.setTargetBeans(targetBeans);
  lbProxyBean.afterPropertiesSet();
  protobufRpcProxyListMap.put(service,protobufRpcProxyList);
  lbMap.put(service,lbProxyBean);
  instancesMap.put(service,(T)lbProxyBean.getObject());
}