Program: 4200
Project: 4200
Buggy source:
/** 
 * Browses the files on the specified host and port.
 * @param host The IP of the host you want to browse.
 * @param port The port of the host you want to browse.
 * @param proxies the <tt>Set</tt> of push proxies to try
 * @param canDoFWTransfer Whether or not this guy can do a firewalltransfer.
 */
public void browseHost(Connectable host,Set<? extends IpPort> proxies,boolean canDoFWTransfer){
  if (host.getInetSocketAddress().isUnresolved()) {
    try {
      host=new ConnectableImpl(host.getAddress(),host.getPort(),host.isTLSCapable());
    }
 catch (    UnknownHostException uhe) {
      failed();
      return;
    }
  }
  if (!NetworkUtils.isValidIpPort(host)) {
    failed();
    return;
  }
  LOG.trace("String_Node_Str");
  setState(STARTED);
  if (canConnectDirectly(host) || isLocalBrowse(host)) {
    try {
      setState(DIRECTLY_CONNECTING);
      LOG.trace("String_Node_Str");
      ConnectType type=host.isTLSCapable() ? ConnectType.TLS : ConnectType.PLAIN;
      Socket socket=Sockets.connect(new InetSocketAddress(host.getAddress(),host.getPort()),DIRECT_CONNECT_TIME,type);
      LOG.trace("String_Node_Str");
      browseExchange(socket);
      return;
    }
 catch (    IOException ioe) {
      LOG.debug("String_Node_Str",ioe);
    }
  }
  LOG.debug("String_Node_Str");
  if (_serventID == null) {
    LOG.debug("String_Node_Str");
    failed();
  }
 else {
    RemoteFileDesc fakeRFD=new RemoteFileDesc(host.getAddress(),host.getPort(),SPECIAL_INDEX,"String_Node_Str",0,_serventID.bytes(),0,false,0,false,null,null,false,true,"String_Node_Str",proxies,-1,canDoFWTransfer ? UDPConnection.VERSION : 0,host.isTLSCapable());
synchronized (_pushedHosts) {
      _pushedHosts.put(_serventID,new PushRequestDetails(this));
    }
    LOG.trace("String_Node_Str");
    setState(PUSHING);
    RouterService.getDownloadManager().getPushManager().sendPush(fakeRFD);
  }
}

Fixed version (ground truth):
/** 
 * Browses the files on the specified host and port.
 * @param host The IP of the host you want to browse.
 * @param port The port of the host you want to browse.
 * @param proxies the <tt>Set</tt> of push proxies to try
 * @param canDoFWTransfer Whether or not this guy can do a firewalltransfer.
 */
public void browseHost(Connectable host,Set<? extends IpPort> proxies,boolean canDoFWTransfer){
  if (host.getInetSocketAddress().isUnresolved()) {
    try {
      host=new ConnectableImpl(host.getAddress(),host.getPort(),host.isTLSCapable());
    }
 catch (    UnknownHostException uhe) {
      failed();
      return;
    }
  }
  if (!NetworkUtils.isValidIpPort(host)) {
    failed();
    return;
  }
  LOG.trace("String_Node_Str");
  setState(STARTED);
  if (canConnectDirectly(host) || isLocalBrowse(host)) {
    try {
      setState(DIRECTLY_CONNECTING);
      ConnectType type=host.isTLSCapable() ? ConnectType.TLS : ConnectType.PLAIN;
      if (LOG.isDebugEnabled())       LOG.debug("String_Node_Str" + type);
      Socket socket=Sockets.connect(new InetSocketAddress(host.getAddress(),host.getPort()),DIRECT_CONNECT_TIME,type);
      LOG.trace("String_Node_Str");
      browseExchange(socket);
      return;
    }
 catch (    IOException ioe) {
      LOG.debug("String_Node_Str",ioe);
    }
  }
  LOG.debug("String_Node_Str");
  if (_serventID == null) {
    LOG.debug("String_Node_Str");
    failed();
  }
 else {
    RemoteFileDesc fakeRFD=new RemoteFileDesc(host.getAddress(),host.getPort(),SPECIAL_INDEX,"String_Node_Str",0,_serventID.bytes(),0,false,0,false,null,null,false,true,"String_Node_Str",proxies,-1,canDoFWTransfer ? UDPConnection.VERSION : 0,host.isTLSCapable());
synchronized (_pushedHosts) {
      _pushedHosts.put(_serventID,new PushRequestDetails(this));
    }
    LOG.trace("String_Node_Str");
    setState(PUSHING);
    RouterService.getDownloadManager().getPushManager().sendPush(fakeRFD);
  }
}