Program: 18588
Project: 18588
Buggy source:
/** 
 * Gets the error detail.
 * @param errorId the error id
 * @param errorName the error name
 * @param service the service
 * @param callback the callback
 * @return the error detail
 * @see org.ebayopensource.turmeric.monitoring.client.model.MetricsQueryService#getErrorDetail(java.lang.String,java.lang.String,com.google.gwt.user.client.rpc.AsyncCallback)
 */
public void getErrorDetail(final String errorId,final String errorName,final String service,final AsyncCallback<ErrorDetail> callback){
  final String url=URL.encode(ErrorMetricsMetadataRequest.getRestURL(errorId,errorName,service));
  RequestBuilder builder=new RequestBuilder(RequestBuilder.GET,url);
  try {
    builder.sendRequest(null,new RequestCallback(){
      public void onError(      Request request,      Throwable err){
        errorLogger.log(Level.SEVERE,"String_Node_Str",err);
        callback.onFailure(err);
      }
      public void onResponseReceived(      Request request,      Response response){
        if (response.getStatusCode() != Response.SC_OK) {
          errorLogger.log(Level.SEVERE,"String_Node_Str" + url + "String_Node_Str"+ response.getStatusCode()+ "String_Node_Str"+ response.getText());
          callback.onFailure(new Throwable("String_Node_Str" + response.getStatusCode()));
        }
 else         if (response.getHeader(ERROR_HEADER) != null) {
          errorLogger.log(Level.SEVERE,"String_Node_Str" + url + "String_Node_Str"+ response.getStatusCode()+ "String_Node_Str"+ response.getText());
          callback.onFailure(new Throwable(ConsoleUtil.messages.badRequestData()));
        }
 else {
          ErrorMetricsMetadataResponse metricsResponse=ErrorMetricsMetadataResponse.fromJSON(response.getText());
          if (metricsResponse == null) {
            callback.onFailure(new Throwable(ConsoleUtil.messages.badOrMissingResponseData()));
          }
 else {
            ErrorDetailJS js=metricsResponse.getReturnData();
            if (js == null)             callback.onFailure(new Throwable(ConsoleUtil.messages.badOrMissingResponseData()));
 else             callback.onSuccess(js);
          }
        }
      }
    }
);
  }
 catch (  RequestException x) {
    errorLogger.log(Level.SEVERE,"String_Node_Str",x);
    callback.onFailure(x);
  }
}

Fixed version (ground truth):
/** 
 * Gets the error detail.
 * @param errorId the error id
 * @param errorName the error name
 * @param service the service
 * @param callback the callback
 * @return the error detail
 * @see org.ebayopensource.turmeric.monitoring.client.model.MetricsQueryService#getErrorDetail(java.lang.String,java.lang.String,com.google.gwt.user.client.rpc.AsyncCallback)
 */
public void getErrorDetail(final String errorId,final String errorName,final String service,final AsyncCallback<ErrorDetail> callback){
  final String url=URL.encode(ErrorMetricsMetadataRequest.getRestURL(errorId,errorName,service));
  RequestBuilder builder=new RequestBuilder(RequestBuilder.GET,url);
  try {
    builder.sendRequest(null,new RequestCallback(){
      public void onError(      Request request,      Throwable err){
        errorLogger.log(Level.SEVERE,"String_Node_Str",err);
        callback.onFailure(err);
      }
      public void onResponseReceived(      Request request,      Response response){
        if (response.getStatusCode() != Response.SC_OK) {
          errorLogger.log(Level.SEVERE,"String_Node_Str" + url + "String_Node_Str"+ response.getStatusCode()+ "String_Node_Str"+ response.getText());
          callback.onFailure(new Throwable("String_Node_Str" + response.getStatusCode()));
        }
 else         if (response.getHeader(ERROR_HEADER) != null && response.getHeader(ERROR_HEADER).length() > 0) {
          errorLogger.log(Level.SEVERE,"String_Node_Str" + url + "String_Node_Str"+ response.getStatusCode()+ "String_Node_Str"+ response.getText());
          callback.onFailure(new Throwable(ConsoleUtil.messages.badRequestData()));
        }
 else {
          ErrorMetricsMetadataResponse metricsResponse=ErrorMetricsMetadataResponse.fromJSON(response.getText());
          if (metricsResponse == null) {
            callback.onFailure(new Throwable(ConsoleUtil.messages.badOrMissingResponseData()));
          }
 else {
            ErrorDetailJS js=metricsResponse.getReturnData();
            if (js == null)             callback.onFailure(new Throwable(ConsoleUtil.messages.badOrMissingResponseData()));
 else             callback.onSuccess(js);
          }
        }
      }
    }
);
  }
 catch (  RequestException x) {
    errorLogger.log(Level.SEVERE,"String_Node_Str",x);
    callback.onFailure(x);
  }
}