Program: 127252
Project: 127252
Buggy source:
/** 
 * DOC zli Comment method "readMetadataDetail".
 */
public IMetadataTable readMetadataDetail(){
  String moduleName=getConnection().getModuleName();
  if (moduleName == null || moduleName.equals("String_Node_Str")) {
    return null;
  }
  String webServiceUrl=getConnection().getWebServiceUrl();
  String userName=getConnection().getUserName();
  String password=getConnection().getPassword();
  String timeOut=getConnection().getTimeOut();
  String betchSize=getConnection().getBatchSize();
  boolean useProxy=getConnection().isUseProxy();
  boolean useHttp=getConnection().isUseHttpProxy();
  String proxyHost=getConnection().getProxyHost();
  String proxyPort=getConnection().getProxyPort();
  String proxyUsername=getConnection().getProxyUsername();
  String proxyPassword=getConnection().getProxyPassword();
  if (isContextMode() && getContextModeManager() != null) {
    webServiceUrl=getContextModeManager().getOriginalValue(webServiceUrl);
    userName=getContextModeManager().getOriginalValue(userName);
    password=getContextModeManager().getOriginalValue(password);
    timeOut=getContextModeManager().getOriginalValue(timeOut);
    betchSize=getContextModeManager().getOriginalValue(betchSize);
    useProxy=Boolean.valueOf(getContextModeManager().getOriginalValue(String.valueOf(useProxy)));
    useHttp=Boolean.valueOf(getContextModeManager().getOriginalValue(String.valueOf(useHttp)));
    proxyHost=getContextModeManager().getOriginalValue(proxyHost);
    proxyPort=getContextModeManager().getOriginalValue(proxyPort);
    proxyUsername=getContextModeManager().getOriginalValue(proxyUsername);
    proxyPassword=getContextModeManager().getOriginalValue(proxyPassword);
  }
  metadataTableOrder=getMetadatasForSalesforce(webServiceUrl,userName,password,timeOut,moduleName,betchSize,useProxy,useHttp,proxyHost,proxyPort,proxyUsername,proxyPassword,true);
  return metadataTableOrder;
}

Fixed version (ground truth):
/** 
 * DOC zli Comment method "readMetadataDetail".
 */
public IMetadataTable readMetadataDetail(){
  String moduleName=getConnection().getModuleName();
  if (moduleName == null || moduleName.equals("String_Node_Str")) {
    return null;
  }
  String webServiceUrl=getConnection().getWebServiceUrl();
  String userName=getConnection().getUserName();
  String password=getConnection().getPassword();
  String timeOut=getConnection().getTimeOut();
  String betchSize=getConnection().getBatchSize();
  boolean useProxy=getConnection().isUseProxy();
  boolean useHttp=getConnection().isUseHttpProxy();
  String proxyHost=getConnection().getProxyHost();
  String proxyPort=getConnection().getProxyPort();
  String proxyUsername=getConnection().getProxyUsername();
  String proxyPassword=getConnection().getProxyPassword();
  String webServiceUrlForOauth=getConnection().getWebServiceUrlTextForOAuth();
  String comsumeKey=getConnection().getConsumeKey();
  String consumeSecret=getConnection().getConsumeSecret();
  String callbackHost=getConnection().getCallbackHost();
  String callbackPort=getConnection().getCallbackPort();
  String salesforceVersion=getConnection().getSalesforceVersion();
  String token=getConnection().getToken();
  String loginType=getConnection().getLoginType();
  if (isContextMode() && getContextModeManager() != null) {
    webServiceUrl=getContextModeManager().getOriginalValue(webServiceUrl);
    userName=getContextModeManager().getOriginalValue(userName);
    password=getContextModeManager().getOriginalValue(password);
    timeOut=getContextModeManager().getOriginalValue(timeOut);
    betchSize=getContextModeManager().getOriginalValue(betchSize);
    useProxy=Boolean.valueOf(getContextModeManager().getOriginalValue(String.valueOf(useProxy)));
    useHttp=Boolean.valueOf(getContextModeManager().getOriginalValue(String.valueOf(useHttp)));
    proxyHost=getContextModeManager().getOriginalValue(proxyHost);
    proxyPort=getContextModeManager().getOriginalValue(proxyPort);
    proxyUsername=getContextModeManager().getOriginalValue(proxyUsername);
    proxyPassword=getContextModeManager().getOriginalValue(proxyPassword);
    webServiceUrlForOauth=getContextModeManager().getOriginalValue(webServiceUrlForOauth);
    comsumeKey=getContextModeManager().getOriginalValue(comsumeKey);
    consumeSecret=getContextModeManager().getOriginalValue(consumeSecret);
    callbackHost=getContextModeManager().getOriginalValue(callbackHost);
    callbackPort=getContextModeManager().getOriginalValue(callbackPort);
    salesforceVersion=getContextModeManager().getOriginalValue(salesforceVersion);
    token=getContextModeManager().getOriginalValue(token);
    loginType=getContextModeManager().getOriginalValue(loginType);
  }
  if (loginType.equals(BASIC)) {
    metadataTableOrder=getMetadatasForSalesforce(webServiceUrl,userName,password,timeOut,moduleName,betchSize,useProxy,useHttp,proxyHost,proxyPort,proxyUsername,proxyPassword,true);
  }
 else {
    metadataTableOrder=getMetadataTableBySalesforceServerAPIForOauth(webServiceUrlForOauth,comsumeKey,consumeSecret,callbackHost,callbackPort,salesforceVersion,token,timeOut,moduleName);
    if (metadataTableOrder == null) {
      metadataTableOrder=getMetadataTableFromConfigFile(moduleName);
    }
  }
  return metadataTableOrder;
}