Program: 3898
Project: 3898
Buggy source:
/** 
 * Contacts the application servlet and sends it the information  contained in the <tt>LocalClientInfo</tt> object.  This method  also builds a <tt>RemoteClientInfo</tt> object from the information  obtained from the servlet.
 * @return a <tt>RemoteClientInfo</tt> object that encapsulates the data about when to next send a bug.
 * @param localInfo is an object encapsulating information about thelocal machine to send to the remote server
 */
synchronized RemoteClientInfo getRemoteBugInfo(LocalClientInfo localInfo){
  RemoteClientInfo remoteInfo=new RemoteClientInfo();
  HttpResponse response=null;
  LimeHttpClient client=ALLOW_NIO ? limeHttpClient.get() : new SimpleLimeHttpClient();
  try {
    NameValuePair[] params=getNameValuePairs(localInfo.getPostRequestParams());
    HttpPost post=new HttpPost(SERVLET_URL);
    post.addHeader("String_Node_Str","String_Node_Str");
    post.addHeader("String_Node_Str",LimeWireUtils.getHttpServer());
    post.addHeader("String_Node_Str","String_Node_Str");
    post.setEntity(new UrlEncodedFormEntity(Arrays.asList(params)));
    HttpConnectionParams.setConnectionTimeout(client.getParams(),CONNECT_TIMEOUT);
    HttpClientParams.setRedirecting(client.getParams(),false);
    response=client.execute(post);
    String result;
    if (response.getEntity() != null) {
      result=EntityUtils.toString(response.getEntity());
    }
 else {
      result=null;
    }
    String body=result;
    if (LOG.isDebugEnabled())     LOG.debug("String_Node_Str" + response);
    if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK)     remoteInfo.addRemoteInfo(body);
 else {
      if (LOG.isWarnEnabled())       LOG.warn("String_Node_Str" + response.getStatusLine().getStatusCode());
      remoteInfo.connectFailed();
    }
  }
 catch (  IOException e) {
    fail(remoteInfo,e);
  }
 finally {
    client.releaseConnection(response);
  }
  return remoteInfo;
}

Fixed version (ground truth):
/** 
 * Contacts the application servlet and sends it the information  contained in the <tt>LocalClientInfo</tt> object.  This method  also builds a <tt>RemoteClientInfo</tt> object from the information  obtained from the servlet.
 * @return a <tt>RemoteClientInfo</tt> object that encapsulates the data about when to next send a bug.
 * @param localInfo is an object encapsulating information about thelocal machine to send to the remote server
 */
synchronized RemoteClientInfo getRemoteBugInfo(LocalClientInfo localInfo){
  RemoteClientInfo remoteInfo=new RemoteClientInfo();
  HttpResponse response=null;
  LimeHttpClient client=ALLOW_NIO && limeHttpClient != null ? limeHttpClient.get() : new SimpleLimeHttpClient();
  try {
    NameValuePair[] params=getNameValuePairs(localInfo.getPostRequestParams());
    HttpPost post=new HttpPost(SERVLET_URL);
    post.addHeader("String_Node_Str","String_Node_Str");
    post.addHeader("String_Node_Str",LimeWireUtils.getHttpServer());
    post.addHeader("String_Node_Str","String_Node_Str");
    post.setEntity(new UrlEncodedFormEntity(Arrays.asList(params)));
    HttpConnectionParams.setConnectionTimeout(client.getParams(),CONNECT_TIMEOUT);
    HttpClientParams.setRedirecting(client.getParams(),false);
    response=client.execute(post);
    String result;
    if (response.getEntity() != null) {
      result=EntityUtils.toString(response.getEntity());
    }
 else {
      result=null;
    }
    String body=result;
    if (LOG.isDebugEnabled())     LOG.debug("String_Node_Str" + response);
    if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK)     remoteInfo.addRemoteInfo(body);
 else {
      if (LOG.isWarnEnabled())       LOG.warn("String_Node_Str" + response.getStatusLine().getStatusCode());
      remoteInfo.connectFailed();
    }
  }
 catch (  IOException e) {
    fail(remoteInfo,e);
  }
 finally {
    client.releaseConnection(response);
  }
  return remoteInfo;
}