Program: 107350
Project: 107350
Buggy source:
public void dispatch(BaseCmd cmd,Map<String,String> params){
  setupParameters(cmd,params);
  try {
    cmd.execute();
  }
 catch (  Throwable t) {
    if (t instanceof InvalidParameterValueException || t instanceof IllegalArgumentException) {
      s_logger.info(t);
      throw new ServerApiException(BaseCmd.PARAM_ERROR,t.getMessage());
    }
 else     if (t instanceof PermissionDeniedException) {
      s_logger.info(t);
      throw new ServerApiException(BaseCmd.ACCOUNT_ERROR,t.getMessage());
    }
 else     if (t instanceof AccountLimitException) {
      s_logger.info(t);
      throw new ServerApiException(BaseCmd.ACCOUNT_RESOURCE_LIMIT_ERROR,t.getMessage());
    }
 else     if (t instanceof InsufficientCapacityException) {
      s_logger.info(t);
      throw new ServerApiException(BaseCmd.INSUFFICIENT_CAPACITY_ERROR,t.getMessage());
    }
 else     if (t instanceof ResourceAllocationException) {
      s_logger.warn(t);
      throw new ServerApiException(BaseCmd.RESOURCE_ALLOCATION_ERROR,t.getMessage());
    }
 else     if (t instanceof ResourceUnavailableException) {
      s_logger.warn(t);
      throw new ServerApiException(BaseCmd.RESOURCE_UNAVAILABLE_ERROR,t.getMessage());
    }
 else     if (t instanceof ServerApiException) {
      s_logger.warn(t);
      throw new ServerApiException(((ServerApiException)t).getErrorCode(),((ServerApiException)t).getDescription());
    }
 else     if (t instanceof AsyncCommandQueued) {
      throw (AsyncCommandQueued)t;
    }
 else {
      s_logger.warn(t);
      s_logger.error("String_Node_Str" + cmd.getClass().getSimpleName() + "String_Node_Str",t);
      if (UserContext.current().getAccount() == null || UserContext.current().getAccount().getType() == Account.ACCOUNT_TYPE_ADMIN)       throw new ServerApiException(BaseCmd.INTERNAL_ERROR,t.getMessage());
 else       throw new ServerApiException(BaseCmd.INTERNAL_ERROR,BaseCmd.USER_ERROR_MESSAGE);
    }
  }
}

Fixed version (ground truth):
public void dispatch(BaseCmd cmd,Map<String,String> params){
  setupParameters(cmd,params);
  try {
    cmd.execute();
  }
 catch (  Throwable t) {
    if (t instanceof InvalidParameterValueException || t instanceof IllegalArgumentException) {
      s_logger.info(t);
      throw new ServerApiException(BaseCmd.PARAM_ERROR,t.getMessage());
    }
 else     if (t instanceof PermissionDeniedException) {
      s_logger.info(t);
      throw new ServerApiException(BaseCmd.ACCOUNT_ERROR,t.getMessage());
    }
 else     if (t instanceof AccountLimitException) {
      s_logger.info(t);
      throw new ServerApiException(BaseCmd.ACCOUNT_RESOURCE_LIMIT_ERROR,t.getMessage());
    }
 else     if (t instanceof InsufficientCapacityException) {
      s_logger.info(t);
      throw new ServerApiException(BaseCmd.INSUFFICIENT_CAPACITY_ERROR,t.getMessage());
    }
 else     if (t instanceof ResourceAllocationException) {
      s_logger.warn(t);
      throw new ServerApiException(BaseCmd.RESOURCE_ALLOCATION_ERROR,t.getMessage());
    }
 else     if (t instanceof ResourceUnavailableException) {
      s_logger.warn(t);
      throw new ServerApiException(BaseCmd.RESOURCE_UNAVAILABLE_ERROR,t.getMessage());
    }
 else     if (t instanceof ServerApiException) {
      s_logger.warn(t.getClass() + "String_Node_Str" + ((ServerApiException)t).getDescription());
      throw new ServerApiException(((ServerApiException)t).getErrorCode(),((ServerApiException)t).getDescription());
    }
 else     if (t instanceof AsyncCommandQueued) {
      throw (AsyncCommandQueued)t;
    }
 else {
      s_logger.warn(t);
      s_logger.error("String_Node_Str" + cmd.getClass().getSimpleName() + "String_Node_Str",t);
      if (UserContext.current().getAccount() == null || UserContext.current().getAccount().getType() == Account.ACCOUNT_TYPE_ADMIN)       throw new ServerApiException(BaseCmd.INTERNAL_ERROR,t.getMessage());
 else       throw new ServerApiException(BaseCmd.INTERNAL_ERROR,BaseCmd.USER_ERROR_MESSAGE);
    }
  }
}