Program: 94501
Project: 94501
Buggy source:
protected void openStreams() throws IncomingFileTransferException {
  Trace.entering(Activator.PLUGIN_ID,DebugOptions.METHODS_ENTERING,this.getClass(),"String_Node_Str");
  final String urlString=getRemoteFileURL().toString();
  int code=-1;
  try {
    httpClient.getHttpConnectionManager().getParams().setSoTimeout(DEFAULT_CONNECTION_TIMEOUT);
    httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(DEFAULT_CONNECTION_TIMEOUT);
    setupAuthentication(urlString);
    setupHostAndPort(urlString);
    getMethod=new GzipGetMethod(urlString);
    getMethod.setFollowRedirects(true);
    getMethod.getParams().setParameter(CredentialsProvider.PROVIDER,new ECFCredentialsProvider());
    setRequestHeaderValues();
    Trace.trace(Activator.PLUGIN_ID,"String_Node_Str" + urlString);
    code=httpClient.executeMethod(getMethod);
    Trace.trace(Activator.PLUGIN_ID,"String_Node_Str" + code);
    if (code == HttpURLConnection.HTTP_PARTIAL || code == HttpURLConnection.HTTP_OK) {
      getResponseHeaderValues();
      setInputStream(getMethod.getResponseBodyAsUnzippedStream());
      fireReceiveStartEvent();
    }
 else     if (code == HttpURLConnection.HTTP_NOT_FOUND) {
      getMethod.releaseConnection();
      throw new FileNotFoundException(urlString);
    }
 else     if (code == HttpURLConnection.HTTP_UNAUTHORIZED) {
      getMethod.releaseConnection();
      throw new LoginException(Messages.HttpClientRetrieveFileTransfer_Unauthorized);
    }
 else     if (code == HttpURLConnection.HTTP_FORBIDDEN) {
      getMethod.releaseConnection();
      throw new LoginException("String_Node_Str");
    }
 else     if (code == HttpURLConnection.HTTP_PROXY_AUTH) {
      getMethod.releaseConnection();
      throw new LoginException(Messages.HttpClientRetrieveFileTransfer_Proxy_Auth_Required);
    }
 else {
      getMethod.releaseConnection();
      throw new IOException(NLS.bind(Messages.HttpClientRetrieveFileTransfer_ERROR_GENERAL_RESPONSE_CODE,new Integer(code)));
    }
  }
 catch (  final Exception e) {
    IncomingFileTransferException ex=new IncomingFileTransferException(NLS.bind(Messages.HttpClientRetrieveFileTransfer_EXCEPTION_COULD_NOT_CONNECT,urlString),e,code);
    Trace.throwing(Activator.PLUGIN_ID,DebugOptions.EXCEPTIONS_THROWING,this.getClass(),"String_Node_Str",ex);
    throw ex;
  }
  Trace.exiting(Activator.PLUGIN_ID,DebugOptions.METHODS_EXITING,this.getClass(),"String_Node_Str");
}

Fixed version (ground truth):
protected void openStreams() throws IncomingFileTransferException {
  Trace.entering(Activator.PLUGIN_ID,DebugOptions.METHODS_ENTERING,this.getClass(),"String_Node_Str");
  final String urlString=getRemoteFileURL().toString();
  int code=-1;
  try {
    httpClient.getHttpConnectionManager().getParams().setSoTimeout(DEFAULT_CONNECTION_TIMEOUT);
    httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(DEFAULT_CONNECTION_TIMEOUT);
    setupAuthentication(urlString);
    setupHostAndPort(urlString);
    getMethod=new GzipGetMethod(urlString);
    getMethod.setFollowRedirects(true);
    getMethod.getParams().setParameter(CredentialsProvider.PROVIDER,new ECFCredentialsProvider());
    setRequestHeaderValues();
    Trace.trace(Activator.PLUGIN_ID,"String_Node_Str" + urlString);
    if (getFileRangeSpecification() == null)     getMethod.setRequestHeader(GzipGetMethod.ACCEPT_ENCODING,GzipGetMethod.CONTENT_ENCODING_ACCEPTED);
    code=httpClient.executeMethod(getMethod);
    Trace.trace(Activator.PLUGIN_ID,"String_Node_Str" + code);
    if (code == HttpURLConnection.HTTP_PARTIAL || code == HttpURLConnection.HTTP_OK) {
      getResponseHeaderValues();
      setInputStream(getMethod.getResponseBodyAsUnzippedStream());
      fireReceiveStartEvent();
    }
 else     if (code == HttpURLConnection.HTTP_NOT_FOUND) {
      getMethod.releaseConnection();
      throw new FileNotFoundException(urlString);
    }
 else     if (code == HttpURLConnection.HTTP_UNAUTHORIZED) {
      getMethod.releaseConnection();
      throw new LoginException(Messages.HttpClientRetrieveFileTransfer_Unauthorized);
    }
 else     if (code == HttpURLConnection.HTTP_FORBIDDEN) {
      getMethod.releaseConnection();
      throw new LoginException("String_Node_Str");
    }
 else     if (code == HttpURLConnection.HTTP_PROXY_AUTH) {
      getMethod.releaseConnection();
      throw new LoginException(Messages.HttpClientRetrieveFileTransfer_Proxy_Auth_Required);
    }
 else {
      getMethod.releaseConnection();
      throw new IOException(NLS.bind(Messages.HttpClientRetrieveFileTransfer_ERROR_GENERAL_RESPONSE_CODE,new Integer(code)));
    }
  }
 catch (  final Exception e) {
    IncomingFileTransferException ex=new IncomingFileTransferException(NLS.bind(Messages.HttpClientRetrieveFileTransfer_EXCEPTION_COULD_NOT_CONNECT,urlString),e,code);
    Trace.throwing(Activator.PLUGIN_ID,DebugOptions.EXCEPTIONS_THROWING,this.getClass(),"String_Node_Str",ex);
    throw ex;
  }
  Trace.exiting(Activator.PLUGIN_ID,DebugOptions.METHODS_EXITING,this.getClass(),"String_Node_Str");
}