Program: 16888
Project: 16888
Buggy source:
private void handleClientErrors(ClientHttpResponse response) throws IOException {
  HttpStatus statusCode=response.getStatusCode();
  Map<String,Object> errorMap=extractErrorDetailsFromResponse(response);
  String errorText="String_Node_Str";
  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("String_Node_Str");
    }
  }
 else   if (statusCode == HttpStatus.UNAUTHORIZED) {
    if (errorText == null) {
      throw new NotAuthorizedException("String_Node_Str",response.getStatusText());
    }
 else     if (errorText.equals("String_Node_Str")) {
      throw new MissingAuthorizationException("String_Node_Str");
    }
 else     if (errorText.equals("String_Node_Str")) {
      throw new RevokedAuthorizationException("String_Node_Str");
    }
 else     if (errorText.equals("String_Node_Str")) {
      throw new InvalidAuthorizationException("String_Node_Str",errorText);
    }
 else {
      throw new NotAuthorizedException("String_Node_Str",errorText);
    }
  }
 else   if (statusCode == HttpStatus.FORBIDDEN) {
    if (errorText.equals(DUPLICATE_STATUS_TEXT) || errorText.contains("String_Node_Str")) {
      throw new DuplicateStatusException("String_Node_Str",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("String_Node_Str");
    }
 else {
      throw new OperationNotPermittedException("String_Node_Str",errorText);
    }
  }
 else   if (statusCode == HttpStatus.NOT_FOUND) {
    throw new ResourceNotFoundException("String_Node_Str",errorText);
  }
 else   if (statusCode == HttpStatus.valueOf(ENHANCE_YOUR_CALM)) {
    throw new RateLimitExceededException("String_Node_Str");
  }
}

Fixed version (ground truth):
private void handleClientErrors(ClientHttpResponse response) throws IOException {
  HttpStatus statusCode=response.getStatusCode();
  Map<String,Object> errorMap=extractErrorDetailsFromResponse(response);
  String errorText="String_Node_Str";
  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("String_Node_Str");
    }
  }
 else   if (statusCode == HttpStatus.UNAUTHORIZED) {
    if (errorText == null) {
      throw new NotAuthorizedException("String_Node_Str",response.getStatusText());
    }
 else     if (errorText.equals("String_Node_Str")) {
      throw new MissingAuthorizationException("String_Node_Str");
    }
 else     if (errorText.equals("String_Node_Str")) {
      throw new RevokedAuthorizationException("String_Node_Str");
    }
 else     if (errorText.equals("String_Node_Str")) {
      throw new InvalidAuthorizationException("String_Node_Str",errorText);
    }
 else {
      throw new NotAuthorizedException("String_Node_Str",errorText);
    }
  }
 else   if (statusCode == HttpStatus.FORBIDDEN) {
    if (errorText.equals(DUPLICATE_STATUS_TEXT) || errorText.contains("String_Node_Str")) {
      throw new DuplicateStatusException("String_Node_Str",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("String_Node_Str");
    }
 else {
      throw new OperationNotPermittedException("String_Node_Str",errorText);
    }
  }
 else   if (statusCode == HttpStatus.NOT_FOUND) {
    throw new ResourceNotFoundException("String_Node_Str",errorText);
  }
 else   if (statusCode == HttpStatus.valueOf(ENHANCE_YOUR_CALM) || statusCode == HttpStatus.valueOf(TOO_MANY_REQUESTS)) {
    throw new RateLimitExceededException("String_Node_Str");
  }
}