Program: 16898
Project: 16898
Buggy source:
private void handleClientErrors(ClientHttpResponse response) throws IOException {
  HttpStatus statusCode=response.getStatusCode();
  Map<String,Object> errorMap=extractErrorDetailsFromResponse(response);
  if (errorMap == null) {
    return;
  }
  String errorText=null;
  if (errorMap.containsKey("String_Node_Str")) {
    errorText=(String)errorMap.get("String_Node_Str");
  }
 else   if (errorMap.containsKey("String_Node_Str")) {
    Object errors=errorMap.get("String_Node_Str");
    if (errors instanceof List) {
      @SuppressWarnings("String_Node_Str") List<Map<String,String>> errorsList=(List<Map<String,String>>)errors;
      errorText=errorsList.get(0).get("String_Node_Str");
    }
 else     if (errors instanceof String) {
      errorText=(String)errors;
    }
  }
  if (statusCode == HttpStatus.UNAUTHORIZED) {
    if (errorText == null) {
      throw new NotAuthorizedException(response.getStatusText());
    }
 else     if (errorText.equals("String_Node_Str")) {
      throw new MissingAuthorizationException();
    }
 else     if (errorText.equals("String_Node_Str")) {
      throw new RevokedAuthorizationException();
    }
 else     if (errorText.equals("String_Node_Str")) {
      throw new InvalidAuthorizationException(errorText);
    }
 else {
      throw new NotAuthorizedException(errorText);
    }
  }
 else   if (statusCode == HttpStatus.FORBIDDEN) {
    if (errorText.equals(DUPLICATE_STATUS_TEXT) || errorText.contains("String_Node_Str")) {
      throw new DuplicateStatusException(errorText);
    }
 else     if (errorText.equals(STATUS_TOO_LONG_TEXT) || errorText.contains(MESSAGE_TOO_LONG_TEXT)) {
      throw new MessageTooLongException(errorText);
    }
 else     if (errorText.equals(INVALID_MESSAGE_RECIPIENT_TEXT)) {
      throw new InvalidMessageRecipientException(errorText);
    }
 else     if (errorText.equals(DAILY_RATE_LIMIT_TEXT)) {
      throw new RateLimitExceededException();
    }
 else {
      throw new OperationNotPermittedException(errorText);
    }
  }
 else   if (statusCode == HttpStatus.NOT_FOUND) {
    throw new ResourceNotFoundException(errorText);
  }
 else   if (statusCode == HttpStatus.valueOf(ENHANCE_YOUR_CALM)) {
    throw new RateLimitExceededException();
  }
}

Fixed version (ground truth):
private void handleClientErrors(ClientHttpResponse response) throws IOException {
  HttpStatus statusCode=response.getStatusCode();
  Map<String,Object> errorMap=extractErrorDetailsFromResponse(response);
  if (errorMap == null) {
    return;
  }
  String errorText=null;
  if (errorMap.containsKey("String_Node_Str")) {
    errorText=(String)errorMap.get("String_Node_Str");
  }
 else   if (errorMap.containsKey("String_Node_Str")) {
    Object errors=errorMap.get("String_Node_Str");
    if (errors instanceof List) {
      @SuppressWarnings("String_Node_Str") List<Map<String,String>> errorsList=(List<Map<String,String>>)errors;
      errorText=errorsList.get(0).get("String_Node_Str");
    }
 else     if (errors instanceof String) {
      errorText=(String)errors;
    }
  }
  if (statusCode == HttpStatus.BAD_REQUEST) {
    if (errorText.contains("String_Node_Str")) {
      throw new RateLimitExceededException();
    }
  }
 else   if (statusCode == HttpStatus.UNAUTHORIZED) {
    if (errorText == null) {
      throw new NotAuthorizedException(response.getStatusText());
    }
 else     if (errorText.equals("String_Node_Str")) {
      throw new MissingAuthorizationException();
    }
 else     if (errorText.equals("String_Node_Str")) {
      throw new RevokedAuthorizationException();
    }
 else     if (errorText.equals("String_Node_Str")) {
      throw new InvalidAuthorizationException(errorText);
    }
 else {
      throw new NotAuthorizedException(errorText);
    }
  }
 else   if (statusCode == HttpStatus.FORBIDDEN) {
    if (errorText.equals(DUPLICATE_STATUS_TEXT) || errorText.contains("String_Node_Str")) {
      throw new DuplicateStatusException(errorText);
    }
 else     if (errorText.equals(STATUS_TOO_LONG_TEXT) || errorText.contains(MESSAGE_TOO_LONG_TEXT)) {
      throw new MessageTooLongException(errorText);
    }
 else     if (errorText.equals(INVALID_MESSAGE_RECIPIENT_TEXT)) {
      throw new InvalidMessageRecipientException(errorText);
    }
 else     if (errorText.equals(DAILY_RATE_LIMIT_TEXT)) {
      throw new RateLimitExceededException();
    }
 else {
      throw new OperationNotPermittedException(errorText);
    }
  }
 else   if (statusCode == HttpStatus.NOT_FOUND) {
    throw new ResourceNotFoundException(errorText);
  }
 else   if (statusCode == HttpStatus.valueOf(ENHANCE_YOUR_CALM)) {
    throw new RateLimitExceededException();
  }
}