Program: 115475
Project: 115475
Buggy source:
/** 
 * Generate configuration for a cluster with the following format: <transport> { upstream <cluster-hostname> { server <hostname>:<port>; server <hostname>:<port>; } server { listen <proxy-port>; server_name <cluster-hostname>; location / { proxy_pass    http://<cluster-hostname> } location /nginx_status { stub_status on; access_log off; allow 127.0.0.1; deny all; } } }
 * @param cluster
 * @param ports
 * @param text
 */
private void generateConfigurationForCluster(Cluster cluster,Collection<Port> ports,StringBuilder text){
  for (  Port port : ports) {
    for (    String hostname : cluster.getHostNames()) {
      text.append(port.getProtocol()).append("String_Node_Str").append(NEW_LINE);
      text.append(TAB).append("String_Node_Str").append(hostname).append("String_Node_Str").append(NEW_LINE);
      for (      Member member : cluster.getMembers()) {
        text.append(TAB).append(TAB).append("String_Node_Str").append(member.getHostName()).append("String_Node_Str").append(port.getValue()).append("String_Node_Str").append(NEW_LINE);
      }
      text.append(TAB).append("String_Node_Str").append(NEW_LINE);
      text.append(NEW_LINE);
      text.append(TAB).append("String_Node_Str").append(NEW_LINE);
      text.append(TAB).append(TAB).append("String_Node_Str").append(port.getProxy()).append("String_Node_Str").append(NEW_LINE);
      text.append(TAB).append(TAB).append("String_Node_Str").append(hostname).append("String_Node_Str").append(NEW_LINE);
      text.append(TAB).append(TAB).append("String_Node_Str").append(NEW_LINE);
      text.append(TAB).append(TAB).append(TAB).append("String_Node_Str").append(TAB).append("String_Node_Str").append(hostname).append("String_Node_Str").append(NEW_LINE);
      text.append(TAB).append(TAB).append("String_Node_Str").append(NEW_LINE);
      text.append(TAB).append(TAB).append("String_Node_Str").append(NEW_LINE);
      text.append(TAB).append(TAB).append(TAB).append("String_Node_Str").append(NEW_LINE);
      text.append(TAB).append(TAB).append(TAB).append("String_Node_Str").append(NEW_LINE);
      text.append(TAB).append(TAB).append(TAB).append("String_Node_Str").append(NEW_LINE);
      text.append(TAB).append(TAB).append(TAB).append("String_Node_Str").append(NEW_LINE);
      text.append(TAB).append(TAB).append("String_Node_Str").append(NEW_LINE);
      text.append(TAB).append("String_Node_Str").append(NEW_LINE);
      text.append("String_Node_Str").append(NEW_LINE);
    }
  }
}

Fixed version (ground truth):
/** 
 * Generate configuration for a cluster with the following format: <transport> { upstream <cluster-hostname> { server <hostname>:<port>; server <hostname>:<port>; } server { listen <proxy-port>; server_name <cluster-hostname>; location / { proxy_pass    http://<cluster-hostname> } location /nginx_status { stub_status on; access_log off; allow 127.0.0.1; deny all; } } }
 * @param cluster
 * @param text
 */
private void generateConfigurationForCluster(Cluster cluster,StringBuilder text){
  if ((cluster.getMembers() == null) || (cluster.getMembers().size() == 0)) {
    return;
  }
  Member firstMember=(Member)cluster.getMembers().toArray()[0];
  Collection<Port> ports=firstMember.getPorts();
  for (  Port port : ports) {
    for (    String hostname : cluster.getHostNames()) {
      text.append(port.getProtocol()).append("String_Node_Str").append(NEW_LINE);
      text.append(TAB).append("String_Node_Str").append(hostname).append("String_Node_Str").append(NEW_LINE);
      for (      Member member : cluster.getMembers()) {
        text.append(TAB).append(TAB).append("String_Node_Str").append(member.getHostName()).append("String_Node_Str").append(port.getValue()).append("String_Node_Str").append(NEW_LINE);
      }
      text.append(TAB).append("String_Node_Str").append(NEW_LINE);
      text.append(NEW_LINE);
      text.append(TAB).append("String_Node_Str").append(NEW_LINE);
      text.append(TAB).append(TAB).append("String_Node_Str").append(port.getProxy()).append("String_Node_Str").append(NEW_LINE);
      text.append(TAB).append(TAB).append("String_Node_Str").append(hostname).append("String_Node_Str").append(NEW_LINE);
      text.append(TAB).append(TAB).append("String_Node_Str").append(NEW_LINE);
      text.append(TAB).append(TAB).append(TAB).append("String_Node_Str").append(TAB).append("String_Node_Str").append(hostname).append("String_Node_Str").append(NEW_LINE);
      text.append(TAB).append(TAB).append("String_Node_Str").append(NEW_LINE);
      text.append(TAB).append(TAB).append("String_Node_Str").append(NEW_LINE);
      text.append(TAB).append(TAB).append(TAB).append("String_Node_Str").append(NEW_LINE);
      text.append(TAB).append(TAB).append(TAB).append("String_Node_Str").append(NEW_LINE);
      text.append(TAB).append(TAB).append(TAB).append("String_Node_Str").append(NEW_LINE);
      text.append(TAB).append(TAB).append(TAB).append("String_Node_Str").append(NEW_LINE);
      text.append(TAB).append(TAB).append("String_Node_Str").append(NEW_LINE);
      text.append(TAB).append("String_Node_Str").append(NEW_LINE);
      text.append("String_Node_Str").append(NEW_LINE);
    }
  }
}